Php OctorberCMS中相同标题的唯一slug
我将表单输入以这种方式保存到数据库,并使用来自帖子标题的slugPhp 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”,并且两篇文章会发生冲突。我怎样才能解决这
$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上使用