【发布时间】:2017-01-02 15:35:15
【问题描述】:
我注册了这个资源:
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,它就可以工作。我已经注册了数百个资源,而且我一直使用单数版本的名称
【问题讨论】:
-
我实际上认为我知道这个问题。在 Symfony 中有一个名为 Inflector (github.com/symfony/inflector/blob/master/Inflector.php) 的类,它有一个名为 'singularize' 的方法。我相信“paxes”会以“paxis”的形式出现。例如。轴将成为轴。我坚信这就是您的路线正在发生的事情。
-
我认为你必须手动执行:
['names' => ['update' => 'order-item-paxes']]);
标签: php laravel model-binding