2015-05-19 60 views
1

嘗試獲取以下表單的URL以正確填充。一段時間以來一直困擾着這個,所以在這裏尋求一些幫助。Laravel 5表單URL創建

從以下代碼可以看出,我打開表單 - 綁定模型 - 並嘗試動態設置URL。完整的URL類似於{username}/account/cards/id,所以我需要將它傳遞給用戶名(我想通過認證的用戶(因爲他們只能訪問自己的頁面)以及卡,他們正試圖更新。

{!! Form::model($card, ['method' => 'PATCH', 'action' => 'Account\[email protected]', array(Auth::user()->username, $card->id) ]) !!} 

現在,這一切發生在刀片(前端),所以不是100%我在做什麼錯了。我已經試過行動,網址,路線......我不能讓任何工作出於某種原因錯誤我正在這一個具體是一個數組字符串錯誤但如果我不能建立一個數組我如何傳遞多個變量所以這裏有點困惑

任何幫助將不勝感激。

感謝

CITTI

+0

您是否嘗試過使用'route()'helper?所以你的代碼看起來像這樣:'action'=> route('card_update_route',['username'=> Auth :: user() - > username,'id'=> $ card-> id])' –

+0

{! Form :: model($ card,['method'=>'PATCH','action'=> route('{username} .account.cards.update',['username'=> Auth :: user() - > username,'cards'=> $ card-> id])])!!} 獲取以下錯誤: UrlGenerator.php中的ErrorException行540: Action App \ Http \ Controllers \ http:// dev .newsite.com/citti/account/cards/1未定義。 – Citti

回答

2

這是我以前回答的更新。你可以試試這個:

{!! Form::model($card, ['method' => 'PATCH', 'action' => [ 'Account\[email protected]', Auth::user()->username, $card->id] ]) !!} 
+0

是的,它能夠創建正確的URL,但是這在表單助手的上下文中不起作用。 card'['method'=>'PATCH','action'=> route('update_account_card',['username'=> Auth :: user() - > username,'cards'=> $ card-> id] )])!!} 拋出一個未定義的和invalidargumentexception – Citti

+0

我更新了我的答案,試試那一個 –

+0

就是這樣,現在我試圖想想你的原始答案,所以我可以看到我做錯了什麼。我想你只是用數組()包裝了,不管現在這個工作是否完美,謝謝你的幫助! – Citti

0

你只是通過你的路由參數作爲一個選項Form::model標籤,而不是路線。嘗試:

{!! Form::model($card, ['method' => 'PATCH', 'action' => [ 'Account\[email protected]', [Auth::user()->username, $card->id] ] ]) !!} 

如果您仍然遇到問題,我建議你的名字你的路線和引用的動作命名的路線。

+0

對於更復雜的行爲,最好的做法是爲您的路線命名?只是好奇。一直在閱讀初級教程,他們從來沒有真正觸及任何這些。 – Citti

+0

仍然出現以下錯誤:助手中的ErrorException。php line 546: 數組到字符串轉換(查看: – Citti

0

如果我沒有記錯,動作應該是一個數組,如果你傳遞變量通過控制器。例如:

{!! Form::model($card, array('method' => 'PATCH', 'action' => array('Account\[email protected]', Auth::user()->username, $card->id))) !!} 

不確定您是否使用了Larvel Collective HTML和Forms,但它們基本上與Laravel版本相同。本頁面:http://laravelcollective.com/docs/5.0/html#form-model-binding更詳細地解釋您的特定用例。

希望它有幫助。

P.S.嘗試添加:

{!! Form::hidden('_method', 'PATCH') !!} 

...在打開的標記下面而不是在它內部。這與L5方法欺騙有關,並且通常對於任何不是'POST'或'GET'的任何東西都是必需的,我相信。 (即'PUT','PATCH'和'DELETE')