octobercms 中同名的独特 slug
Unique slug from the same title in octobercms
我正在用 post 标题中的 slug 以这种方式将表单输入保存到数据库中
$post = new Post();
$post->title = Input::get('title');
$post->slug = str_slug(Input::get('title'));
...
当两个用户输入完全相同的标题时,例如 "It is a new day",它会生成相同的 slug "it-is-a-new-day" 并且两个 post 会发生冲突。我怎样才能解决这个问题?尚未找到可行的直接方法
如果添加 id 可以接受,您可以保存它然后更新
$post= new Post();
$post->title = Input::get('title');
// you don't set slug here
// ...
$post->save();
$post->update(['slug' => str_slug($post->title).'-'.$post->id]);
如果使用 update
行不起作用(可能是因为 fillable),你应该使用:
$post->slug = str_slug($post->title).'-'.$post->id;
$post->save();
而不是这一行。
我正在用 post 标题中的 slug 以这种方式将表单输入保存到数据库中
$post = new Post();
$post->title = Input::get('title');
$post->slug = str_slug(Input::get('title'));
...
当两个用户输入完全相同的标题时,例如 "It is a new day",它会生成相同的 slug "it-is-a-new-day" 并且两个 post 会发生冲突。我怎样才能解决这个问题?尚未找到可行的直接方法
如果添加 id 可以接受,您可以保存它然后更新
$post= new Post();
$post->title = Input::get('title');
// you don't set slug here
// ...
$post->save();
$post->update(['slug' => str_slug($post->title).'-'.$post->id]);
如果使用 update
行不起作用(可能是因为 fillable),你应该使用:
$post->slug = str_slug($post->title).'-'.$post->id;
$post->save();
而不是这一行。