[英]Laravel 'Form::model()' does not populate input values stored as an array
[英]Laravel populate form with input groups
我正在尋找將數據綁定到輸入組中的方式。 例如,我有這些輸入:
Form::text('purchaser[address]');
Form::text('seller[address]');
我想綁定來自變量-$ purchaser的數據,該變量具有字段“ address”,而$ seller也具有字段“ address”。 我知道可以使用laravel填寫表格
Form::model
但我找不到如何將其用於輸入組的示例。 甚至有這種可能性,還是我必須手動進行?
從文檔中,我認為您非常接近:
Form::model($purchaser);
然后,如果您想要一個帶有地址值的<input type="text">
,則可以調用:
Form::text("address");
Laravel應該為您提供模型的價值。
請注意,這假設您已經為$purchaser
定義了一個模型。 如果不是,請先執行此操作。
通常,我只是手動執行<input>
元素,因為我感覺自己有更多的控制權。 在這種情況下:
<input type="text" name="address" value="{{ $purchaser->address }}" class="..."/>
而且我可以隨時進行編輯和修改,尤其是class
和value
屬性。
希望有幫助!
編輯:我猜錯了。 您只想填寫address
字段值,而不是address
關系,而是填寫一組模型,對嗎?
因此,您可以輕松地做到這一點:
$purchaser = Purchaser::with('address')->find($someId);
$groups = new Illuminate\Support\Collection;
$groups->put('purchaser', $purchaser);
$groups->put('another_model', $anotherModel);
// then
Form::model($groups->toArray())
Form::text('purchaser[address]')
Form::text('another_model[some_field]')
首先,您需要load
address
,然后需要以數組方式調用它:
// eager load
$purchaser = Purchaser::with('address')->find($someId);
// or lazy load
$purchaser->load('address');
// then:
Form::model($purchaser, ...)
Form::text('address[street]')
Form::text('address[city]')
// and so on
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.