这很简单但我不知道怎么做?我想在网址中显示帖子ID和slug,例如" http://localhost:8000/blog/27/this-is-test-post"但它不起作用
我的路线
Route::get('blog/{id}/{slug}',['as'=>'blog.single','uses'=>'PageController@getSingle']);
我的控制器
public function getSingle($id)
{
$article=Article::where('id','=','$id')->first();
return view('/articles/article')->withArticle($article);
}
"我想通过id获取数据,所以我在这里只使用id"
我的观点
当我使用它时,URL是完美的,但它显示错误"试图获取非对象的属性"
<a href="blog/{{$article->id}}/{{$article->slug}}" > {{$article->title}}</a></h3>
当我使用这个
时<a href="blog/{{$article->id}}{{$article->slug}}" > {{$article->title}}</a></h3>
然后我的网址如http://localhost:8000/blog/27this-is-test-post(没有任何错误)
答案 0 :(得分:3)
使用route
帮助程序。
route('blog.single', ['id' => $article->id, 'slug' => $article->slug]);
在您的链接中:
<a href="{{ route('blog.single', ['id' => $article->id, 'slug' => $article->slug]) }}">{{ $article->title }}</a>
答案 1 :(得分:1)
您可以使用路线助手
route('blog.single', ['id' => $article->id, 'slug' => $article->slug]);
或者在控制器方法中定义2个参数,即
public function getSingle($id,$slug)
{
$article=Article::where('id','=','$id')->first();
return view('/articles/article')->withArticle($article);
}
因为你在路线中定义了2个参数。试试它会工作正常。 您必须使用路由助手为表单操作生成URL或链接href,以便将其放置为单击或发布,即
<a href='{{ route('folders.list') }}'>Folders</a>
或
{{ route('folders.list',['id' => 1]) }}
或者您也可以将链接设为
<a href={{URL::to('blog/'.$article->id.'/'.$article->slug)}}>Some Link</a>
它也可以正常工作