10月同作的独特鼻涕虫



我正在以这种方式使用帖子标题中的 slug 将表单输入保存到数据库中

$post = new Post();
$post->title = Input::get('title');
$post->slug = str_slug(Input::get('title'));
...

当两个用户输入完全相同的标题时,例如"这是新的一天",它会生成相同的 slug"这是新的一天",并且两个帖子发生冲突。我该如何解决这个问题?还没有找到一种直接可行的方法

如果添加 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的行不起作用(可能是因为可填充(,您应该使用:

$post->slug = str_slug($post->title).'-'.$post->id; 
$post->save();

而不是这一行。

最新更新