资源路由从'ax'结束模型生成奇怪的模型名称

时间:2017-01-02 15:35:16

标签: php laravel model-binding

我注册了这个资源:

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就行了。我已经注册了数百个资源,而且我一直使用名称的单数版本

1 个答案:

答案 0 :(得分:0)

您可以通过在$ options数组(第3个参数)中包含parameters数组来告诉Laravel覆盖路由参数:

Route::resource('order-item-paxes', 'OrderItemPaxController', [
    'except' => ['show', 'create', 'store'],
    'parameters' => ['order-item-paxes' => 'order_item_pax']
]);

希望这有帮助!