Я использую zizaco/confide
в сочетании с cviebrock/eloquent-sluggable
.Laravel Confide не запускать eloquent.saving
eloquent-sluggable использует Events::listen('eloquent.saving*')
для генерирования пули во время/до сохранения.
// Cviebrock\EloquentSluggable\SluggableServiceProvider:55
public function registerEvents()
{
$app = $this->app;
$app['events']->listen('eloquent.saving*', function($model) use ($app)
{
$app['sluggable']->make($model);
});
}
Поскольку я перешел на Confide для аутентификации, слизняки не генерируются.
Моя модель пользователя просто class User extends ConfideUser
. Переключение на класс User extends Ardent
или User extends Eloquent
Событие eloquent.saving
получает срабатывание штрафа.
Я не уверен, если это ошибка, или я что-то упустил.
My Model:
<?php
use Illuminate\Database\Eloquent\Model;
use Zizaco\Confide\ConfideUser;
class User extends ConfideUser
{
public $autoPurgeRedundantAttributes = true;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
/**
* Soft delete
*
* @var boolean
*/
protected $softDelete = true;
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('password');
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = array(
'nickname',
'password',
'email',
'deleted_at',
'disabled',
'firstname',
'lastname',
'birthday',
// needed by ardent
'email_confirmation',
'password_confirmation'
);
public static $rules = array(
'firstname' => 'required',
'email' => 'required|email|confirmed|unique:users',
'email_confirmation' => 'required',
'nickname' => 'required|min:2|unique:users',
'birthday' => 'date:d.m.Y|before:now',
'password' => 'required|min:5|confirmed',
'password_confirmation' => 'required'
);
public $imageSizes = array(
array(64, 64),
array(250, 250)
);
public static $sluggable = array(
'build_from' => 'nickname',
'save_to' => 'slug',
);
/**
* Roles
*
* @return object
*/
public function roles()
{
return $this->belongsToMany(
'Role',
'role_user'
)
->withTimestamps();;
}
}