PHP code example of narcisonunez / laravel-actionable-model
1. Go to this page and download the library: Download narcisonunez/laravel-actionable-model 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/ */
narcisonunez / laravel-actionable-model example snippets
use Narcisonunez\LaravelActionableModel\Facades\ActionableActionTypes;
use App\ActionTypes\KudosActionType;
ActionableActionTypes::register([
'like',
'kudos' => KudosActionType::class,
'celebrate'
]);
php artisan actionable:type LikeActionType
use App\Models\Cause;
use App\Models\User;
use Narcisonunez\LaravelActionableModel\Facades\ActionableModelAliases;
ActionableModelAliases::register([
User::class => 'user',
Cause::class => 'cause'
]);
php artisan actionable:update-aliases // Update all the records
// Imports
class User extends Authenticatable
{
use ActionableModel;
use CanPerformActions;
...
}
...
use Narcisonunez\LaravelActionableModel\Traits\ActionableModel;
class Cause extends Model implements CanBeActionable
{
use ActionableModel;
...
}
// You will use your actions as methods call.
$user->performActionOn($cause)->like();
$user->performActionOn($cause)->kudos();
$user->performActionOn($cause)->celebrate();
// returns False or an ActionableTypeRecord
$user->hasPerformedAction('like')->on($cause);
// remove if exists the action, otherwise creates a new like
$user->performActionOn($cause)->toggle('like');
// OR
// toggleACTIONTYPE
$user->performActionOn($cause)->toggleLike();
$user->performActionOn($cause)->toggleKudos();
$user->performActionOn($cause)->toggleCelebrate();
if ($action = $user->hasPerformedAction('like')->on($cause) ) {
$action->delete();
}
$user->actions;
// To help you out filtering your actions. You can use the actionsFilter method
$user->actionsFilter()->get();
$user->actionsFilter()->latest(10);
$user->actionsFilter()->given()->get();
$user->actionsFilter()->received()->get();
$user->actionsFilter()->ofType('like')->get();
$cause->actionsFilter()->by($user)->ofType('like')->get();
$cause->actionsFilter()->by($user)->ofType('like')->count();
$actionRecord = $user->actionsFilter()->ofType('like')->get()->first();
$actionRecord->owner; // The model that performed the action
$actionRecord->actionable; // The model that received the action
$actionRecord->action; // Action that was performed. ex. like, kudos, celebrate, etc.
$actionRecord->type; // An alias to action