Oglas
というモデルを使用して、テーブルに行を作成しています。その行のためにユニークなスラッグを作成しますが、その行を更新するたびに新しいスラグが生成されます。誰かが投稿を共有して編集したとき、その共有投稿はもはや存在しません。これは、スラッグが変更されたためです。更新時にスラッグを変更しないでください(Laravelモデルで)
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;
}
}
は要約する:ここで
はコードOglas
ある新しいポストの火にそのスラグの作成を作成すると発生しません(編集)を更新する際に、スラグを変更しないでください。
何モデルを作成し、更新するあなたのアプローチは。あなたのコントローラのコードを意味します。私たちを見せてもらえますか? – huuuk