我有一个模型mutator,它在一个slug的末尾添加一个随机字符串。
public function setSlugAttribute($slug) {
$slugNumber = mt_rand(100000, 999999);
$this->attributes['slug'] = $slug."-".$slugNumber;
}
我只需要在第一次创建模型时发生这种情况,而不是在模型更新时发生。当模型已经存在并且slug已经很好时,我怎么能跳过mutator呢?
答案 0 :(得分:0)
删除你的slug mutator并使用creating
事件在创建之前改变slug。 E.g。
class MyModel extends Model
{
public function boot()
{
parent::boot();
static::creating(function ($model) {
$random = mt_rand(100000, 999999);
$model->slug = $model->slug . '-' . $random;
});
}
}
答案 1 :(得分:0)
this Delete your slug mutator and use the creating
public static function boot()
{
parent::boot();
Posts::saving(function(Posts $model){
$random = mt_rand(10000, 99999);
$model->slug = str_slug($model->title). '-'. $random;
});
}