【发布时间】:2016-09-24 18:52:20
【问题描述】:
我有一个名为Oglas 的模型,我用它在表中创建行。它为该行创建了一个唯一的 slug,但是每当我更新该行时,它都会生成新的 slug。因此,当有人分享帖子然后进行编辑时,该分享的帖子将不再存在,因为 slug 已更改。
这里是代码Oglas:
class Oglas extends Model
{
protected $table = "oglasi";
protected $guarded = ['id'];
public function uniqueSlug($title) {
$slug = str_slug($title);
$exists = Oglas::where('slug', $slug)->count();
if($exists > 0)
$slug .= "-" . rand(11111, 99999);
return $slug;
}
public function setNazivAttribute($value) // In table i have "naziv" column
{
$this->attributes['slug'] = $this->uniqueSlug($value); // I do not want this to fire if post is edited.
$this->attributes['naziv'] = $value;
}
}
总结一下:当创建新帖子时触发创建 slug,更新(编辑)时不触发,不要更改 slug。
【问题讨论】:
-
您创建和更新模型的方法是什么。我的意思是你的控制器的代码。你能告诉我们吗?
标签: laravel laravel-4 laravel-5 laravel-5.1 laravel-5.2