Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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中带有ID和Slug的URL的路径函数_Php_Laravel_Laravel 6 - Fatal编程技术网

Php Laravel中带有ID和Slug的URL的路径函数

Php Laravel中带有ID和Slug的URL的路径函数,php,laravel,laravel-6,Php,Laravel,Laravel 6,我在Laravel项目的新闻模型中创建了以下方法: public function path() { return route('news.show', $this); } 现在,它可以正常工作并返回以下url结构:www.mydomain.com/news/{id} 不过,我想稍微调整一下。我希望我的url结构如下:www.mydomain.com/news/{id}/{slug} 因此,我想知道的是,我必须如何修改路径函数才能返回此url结构,即既有id又有slug 以下是

我在Laravel项目的
新闻
模型中创建了以下方法:

  public function path() {
    return route('news.show', $this);
  }
现在,它可以正常工作并返回以下url结构:
www.mydomain.com/news/{id}

不过,我想稍微调整一下。我希望我的url结构如下:
www.mydomain.com/news/{id}/{slug}

因此,我想知道的是,我必须如何修改
路径
函数才能返回此url结构,即既有
id
又有
slug

以下是我尝试过的一个解决方案:

// web.php
Route::get('news/{article}/{slug}', 'NewsController@show')->name('news.show');

// News.php
class News extends Model
{
  public function path() {
    return route('news.show', $this);
  }
}
然后启动tinker并运行该路径函数,得到以下错误:

Illuminate/Routing/Exceptions/UrlGenerationException with message 'Missing required parameters for [Route: news.show] [URI: news/{article}/{slug}].'
我尝试过其他的变化,但似乎没有任何效果

你知道如何调整它以使它工作吗

谢谢

// web.php
Route::get('news/{id}/{slug}', 'NewsController@show')->name('news.show');
您需要传递文章id和slug

// News.php
class News extends Model
{
  public function path() {
    return route('news.show', ['id' => $this->id, 'slug' => $this->slug]);
  }
}
谢谢,就这样。这是我缺少的创建一个数组的需要(我也尝试过传递id和slug,只是在问题中没有显示出来)。再次感谢。