我注册了这个资源:
Route::resource('order-item-paxes', 'OrderItemPaxController', ['except' => ['show', 'create', 'store']]);
问题是我无法让控制器中的模型执行此操作:
public function edit(OrderItemPax $order_item_pax)
{
$order_item_pax = OrderItemPax::find($id);
return view('production.order-item-paxes.edit', compact('order_item_pax'));
}
$ order_item_pax-> toArray()返回一个空数组。
我通过php artisan route检查路线:list并返回奇怪的东西:
PUT|PATCH | production/order-item-paxes/{order_item_paxis}
应该是order_item_pax而不是order_item_paxis。
有什么想法吗?
更新
如果我在我的控制器中使用$ order_item_paxis就行了。我已经注册了数百个资源,而且我一直使用名称的单数版本
答案 0 :(得分:0)
您可以通过在$ options数组(第3个参数)中包含parameters数组来告诉Laravel覆盖路由参数:
Route::resource('order-item-paxes', 'OrderItemPaxController', [
'except' => ['show', 'create', 'store'],
'parameters' => ['order-item-paxes' => 'order_item_pax']
]);
希望这有帮助!