PHP code example of imanghafoori / laravel-temp-tag
1. Go to this page and download the library: Download imanghafoori/laravel-temp-tag library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
imanghafoori / laravel-temp-tag example snippets
$user = User::find(1);
$tomorrow = Carbon::now()->addDay();
$note = ['reason' => 'You were nasty!']; // You can optionally store additional data in a json column.
tempTags($user)->tagIt('banned', $tomorrow, $note);
tempTags($user)->tagIt('banned'); // will never expire
$user = User::find(1);
$tagObj = tempTags($user)->getTag('banned'); // <--- fetches the tag regardless of its expire date.
if (! is_null($tagObj)) {
$tagObj->isActive(); // false
$tagObj->isPermanent(); // false
$tagObj->title === 'banned'; // true
$tagObj->expiresAt(); // Carbon instance
}
$tagObj->getPayload('reason'); // 'You were nasty!'
$tagObj->getPayload(); // ['reason' => 'You were nasty!']
$tagObj->getPayload('missing_key'); // null
$tagObj->reason; // 'You were nasty!'
$tagObj->payload; // ['reason' => 'You were nasty!']
$tagObj->missing_key; // null
$user = User::find(1);
tempTags($user)->unTag('banned'); // single string
tempTags($user)->unTag('bann*'); // using a wildcard
tempTags($user)->unTag(['banned', 'man']); // an array of tags to delete
tempTags($user)->deleteExpiredTags(); // all the expired tags, bye bye.
tempTags($user)->expireNow('banned'); // updates the value of expire_at to now() and deletes from cache
$actives = tempTags($user)->getAllActiveTags(); // A collect of "TempTag" model objects.
$expired = tempTags($user)->getAllExpiredTags();
$all = tempTags($user)->getAllTags();
class Product extends Model
{
use hasTempTags;
...
}
Product::hasActiveTags('slider')->where(...)->get();
// Only if the tag of model is expired and it has the specified title.
Product::hasExpiredTags('slider')->where(...)->get();
// To fetch regardless of expiration date of tags, only the title matters.
Product::hasTags('slider')->where(...)->get();
$product1 = Product::find(1);
$product2 = Product::find(1);
tempTags($product1)->tagIt('status', $tomorrow, ['value' => 'sold_out']);
tempTags($product2)->tagIt('status', $tomorrow, ['value' => 'sold_out']);
// now we have tagged these two rows we can fetch them later on with the below query
...
Product::hasActiveTags('status', ['value' => 'sold_out'])->where(...)->get();