我需要你的帮助。因此,我需要在URL上添加更多详细信息。但是我没有做。我需要在链接上添加新闻的id
。现在,我的链接是这样的:www.website.com/news/my-news-title
,但是应该是这样的:www.website.com/news/88/my-news-title
。
这是我的路线:
Route::get('news/{id}/{slug}', 'ModelController@newsSingle');
这是我的查看链接:
<a href="{{ url('news') }}/{{ $news->id }}/{{ $news->slug }}"></a>
这里是我的控制器:
public function newsSingle($slug, $id)
{
// return $slug;
$data = $this->data;
$data['news'] = News::with('category_name','news_image','models','creative')->where('slug','=',$slug)->orWhere('id','=',$id)->first();
if(count($data['news']) == 0)
{
abort(404);
}
updatNewsView($data['news']['id']);
// $displayitem = DisplayItem::where('slug','=',url('news'))->first();
// $data['page'] = $displayitem;
$data['title'] = $data['news']->title;
$data['breadcrumb'] = $data['news']->title;
// $data['menu'] = $tag->title;
$data['metadescription'] = $data['news']->metadescription;
$data['metatitle'] = $data['news']->metatitle;
// $data['blogs'] = $tag->blog;
return view('news.single_news',$data);
}
现在,链接很好,但是当我尝试访问它时,我得到了404 error
。
您的参数已在控制器中切换。您的路线中有id/slug
,但在控制器操作中有$slug, $id
。
更改以下内容应该可以:
控制器:
public function newsSingle($id, $slug)
查看:
<a href="{{ url('news') . "/{$news->id}/{$news->slug}" }}"></a>
或使用mrhn的答案中的命名路线。
您的网址生成似乎是错误的,通常您会执行命名路由。
Route::get('news/{id}/{slug}', 'ModelController@newsSingle')->name('news');
通过使用将返回URL的路由帮助程序,在刀片中像这样生成URL。
<a href="{{ route('news', $news->id, $news->slug) }}"></a>