Php OctorberCMS中相同标题的唯一slug

Php OctorberCMS中相同标题的唯一slug,php,laravel,octobercms,Php,Laravel,Octobercms,我将表单输入以这种方式保存到数据库,并使用来自帖子标题的slug $post = new Post(); $post->title = Input::get('title'); $post->slug = str_slug(Input::get('title')); ... 当两个用户输入完全相同的标题时,例如“It is new day”,它会生成相同的slug“It-is-a-new-day”,并且两篇文章会发生冲突。我怎样才能解决这

我将表单输入以这种方式保存到数据库,并使用来自帖子标题的slug

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

当两个用户输入完全相同的标题时,例如“It is new day”,它会生成相同的slug“It-is-a-new-day”,并且两篇文章会发生冲突。我怎样才能解决这个问题?还没有找到一种直接有效的方法

如果添加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();

而不是这一行。

完全尝试过了。那对我不起作用。我想我是怎么拥有它的<代码>https://stackoverflow.com/questions/59590580/unique-slug-from-the-same-title-in-octobercms。所以我尝试了
$post->update(['slug'=>str_slug($post->id)。'/'.$post->title])太多,但没有work@KingsleyOsuji当你说它不起作用时,你有什么错误吗?它是在不使用slug的情况下保存的@Marcin@KingsleyOsuji不可能。它应该先在没有slug的情况下保存,然后更新slug或在出现问题时抛出异常。您可以尝试使用:
$post->slug=>str_slug($post->title)。'-.$post->id$post->save()而不是使用带有
update
Ok的行。这很有效。谢谢只需将
=>
替换为
=
,即可在octobercms上使用