2017-01-02 62 views
1

產生奇怪的型號名稱我註冊這個資源:資源路線從「斧頭」結尾的機型

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工匠路線路線:它返回一些奇怪的名單和:

PUT|PATCH | production/order-item-paxes/{order_item_paxis} 

應該order_item_pax代替order_item_paxis。

有什麼想法?

UPDATE

如果我在我的控制它的工作原理使用$ order_item_paxis。我已經註冊的數百資源和我一直使用這個名字的奇異版本

+0

我其實認爲我知道這個問題。在Symfony中有一個叫做Inflector的類(https://github.com/symfony/inflector/blob/master/Inflector.php),它有一個叫做「singularize」的方法。我相信'paxes'會以'paxis'出現。例如。軸將成爲軸心。我堅信這就是你的路線發生的事情。 – Farkie

+0

我認爲你必須手動執行:'['names'=> ['update'=>'order-item-paxes']]);' – Farkie

回答

0

你可以告訴Laravel通過包括$ options數組中的參數數組(第三個參數)來覆蓋路由參數:

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

希望這有助於!