Php Laravel中带有ID和Slug的URL的路径函数
我在Laravel项目的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 以下是
新闻模型中创建了以下方法:
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,只是在问题中没有显示出来)。再次感谢。