更新到 Laravel 6.4 后,我收到了一个非常奇怪的错误。我错过了什么吗?
不起作用
{{ action('Admin\OfferController@post', ['id'=>$offer->offer_id,'post'=>0]) }}
有效
{{ action('Admin\OfferController@post', [$offer->offer_id, 0]) }}
错误
Missing required parameters for [Route: offers.edit]
最佳答案
Laravel 6.3(大概吧,我认为)使 Action url 生成器更加严格,如果你正在命名参数(即 'id'=> 0
)那么你必须确保该名称与路由定义中参数的名称完全匹配。
您可以使用 php artisan route:list
并查找您尝试发布到的路由来找到所需参数的名称。在这种情况下,我怀疑它应该是 'offer' => $offer->offer_id
而不是 'id' => $offer->offer_id
但只有当你生成使用 route::resource 方法的路由。
例如。在我目前正在开发的应用程序中,我有以下内容
Route::resource('/articles', 'ArticlesController');
生成以下用于更新文章的路由
PUT /articles/{article}
所以要使用操作 URL 生成器,我必须执行以下操作
action('ArticlesController@update', ['article' => $article->id])
第二个示例起作用的原因是,如果您没有告诉它第一个变量的名称,URL 生成器会假定第一个参数满足生成路由所需的参数。
关于laravel - Laravel 6.x 中的 URL 操作生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59107698/