如何向我的URL添加新参数-Laravel?

问题描述 投票:0回答:2

我需要你的帮助。因此,我需要在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

html laravel
2个回答
1
投票

您的参数已在控制器中切换。您的路线中有id/slug,但在控制器操作中有$slug, $id

更改以下内容应该可以:

控制器:

public function newsSingle($id, $slug)

查看:

<a href="{{ url('news') . "/{$news->id}/{$news->slug}" }}"></a>

或使用mrhn的答案中的命名路线。


0
投票

您的网址生成似乎是错误的,通常您会执行命名路由。

Route::get('news/{id}/{slug}', 'ModelController@newsSingle')->name('news');

通过使用将返回URL的路由帮助程序,在刀片中像这样生成URL。

<a href="{{ route('news', $news->id, $news->slug) }}"></a>
© www.soinside.com 2019 - 2024. All rights reserved.