PHP code example of genealabs / laravel-pivot-events
1. Go to this page and download the library: Download genealabs/laravel-pivot-events 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/ */
genealabs / laravel-pivot-events example snippets
// ...
use GeneaLabs\LaravelPivotEvents\Traits\PivotEventTrait;
use Illuminate\Database\Eloquent\Model;
abstract class BaseModel extends Model
{
use PivotEventTrait;
// ...
}
public static function boot()
{
parent::boot();
static::pivotSyncing(function ($model, $relationName) {
//
});
static::pivotSynced(function ($model, $relationName, $changes) {
//
});
static::pivotAttaching(function ($model, $relationName, $pivotIds, $pivotIdsAttributes) {
//
});
static::pivotAttached(function ($model, $relationName, $pivotIds, $pivotIdsAttributes) {
//
});
static::pivotDetaching(function ($model, $relationName, $pivotIds) {
//
});
static::pivotDetached(function ($model, $relationName, $pivotIds) {
//
});
static::pivotUpdating(function ($model, $relationName, $pivotIds, $pivotIdsAttributes) {
//
});
static::pivotUpdated(function ($model, $relationName, $pivotIds, $pivotIdsAttributes) {
//
});
static::updating(function ($model) {
//this is how we catch standard eloquent events
});
}
\Event::listen('eloquent.*', function ($eventName, array $data) {
echo $eventName; //e.g. 'eloquent.pivotAttached'
});
$user = User::first();
$user->roles()->attach(1);
$user = User::first();
$user->roles()->attach(Role::first());
$user = User::first();
$user->roles()->attach(Role::get());
$user = User::first();
$user->roles()->attach([
1 => ['pivot_attribut' => 1],
2 => ['pivot_attribut' => 0]
]);
$user->roles()->sync([
1 => ['pivot_attribut' => 0]
3 => ['pivot_attribut' => 1]
]);
class User extends Model
{
use PivotEventTrait;
// ...
public function roles()
{
return $this->belongsToMany(Role::class);
}
static::pivotSynced(function ($model, $relationName, $changes) {
echo 'pivotSynced';
echo get_class($model);
echo $relationName;
print_r($changes);
});
static::pivotAttached(function ($model, $relationName, $pivotIds, $pivotIdsAttributes) {
echo 'pivotAttached';
echo get_class($model);
echo $relationName;
print_r($pivotIds);
print_r($pivotIdsAttributes);
});
static::pivotUpdated(function ($model, $relationName, $pivotIds, $pivotIdsAttributes) {
echo 'pivotUpdated';
echo get_class($model);
echo $relationName;
print_r($pivotIds);
print_r($pivotIdsAttributes);
});
static::pivotDetached(function ($model, $relationName, $pivotIds) {
echo 'pivotDetached';
echo get_class($model);
echo $relationName;
print_r($pivotIds);
});
// ...
}