Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel 5.5上生成后段塞和布线_Php_Laravel_Slug - Fatal编程技术网

Php 在Laravel 5.5上生成后段塞和布线

Php 在Laravel 5.5上生成后段塞和布线,php,laravel,slug,Php,Laravel,Slug,我正在用Laravel 5.5创建一篇博客文章。在这里,我想在保存后自动为帖子生成可访问的slug。我在这里做的是: 'slug' => str_slug(request('title')) 它生成slug值,但页面url不起作用。例如,如果我单击127.0.0.1:8000/title,它将重定向我 控制器 public function save(Request $request, Post $post) { $post= new Post; $post->ti

我正在用Laravel 5.5创建一篇博客文章。在这里,我想在保存后自动为帖子生成可访问的slug。我在这里做的是:

'slug' => str_slug(request('title'))
它生成slug值,但页面url不起作用。例如,如果我单击
127.0.0.1:8000/title
,它将重定向我

控制器

public function save(Request $request, Post $post)
{
    $post= new Post;
    $post->title = request('title');
    $post->slig => str_slug(request('title'));

    $post->save();
}
路线

    Route::post('/', 'PostsController@save')->name('add_post');

我会考虑使用一个Slagable包。我以前用过Spatial的,效果很好

一旦创建了新的实体/模型,然后有了slug,您将需要创建一条到控制器的路由,该控制器使用slug字段查找实体

$thing = Thing::whereSlug($request->get('slug'))->firstOrFail();

我们存储标题并将每个空格替换为破折号“-”,以便在保存此步骤后自动为帖子生成可访问的slug:
我在控制器上使用此代码

   public function store(Request $request){$post->slug = str_replace(' ','-',strtolower($post->title));}
等等

public function show($slug)
{
    //
    $post=Post::where('slug',$slug)->first();
    return view('posts.show', compact('post'));
}
然后像这样编辑帖子链接

<a href="/posts/{{$post->slug}}">link</a>


通过slug查找的控制器和路径在哪里?是的,我想根据存储在数据库中的slug值为页面生成超链接。我只能将slug值存储到数据库中。您只是执行了一些连接操作,但没有成功。连接何处?将slug连接到urlpublic函数show($slug){/$post=post::where('slug',$slug)->first();返回视图('posts.show',compact('post');}您可以共享更多上下文吗?请不要在注释部分添加代码,只需编辑您的答案i add more explain@nicohaase,您能解释一下代码中到底是什么解决了原始问题吗?这样的答案对于其他搜索帮助的用户来说可能具有长期的价值。我们存储标题并替换每个空格以破折号“-”,以便在保存后自动为帖子生成可访问的slug