比方說,我有一個 Laravel 應用程式,其中的文章可以關聯多個標簽(即 n:m 關系)。創建這些記錄作業得很好,我還可以檢索選定的標簽陣列。所有必要的關系都可用并在 Eloquent 或模型中作業。
現在,我想在這個應用程式中創建一個編輯表單。此編輯表單應在用戶可以更改詳細資訊的預填充表單中顯示一篇選定文章的所有文章詳細資訊。這也適用于所有標準文本欄位。但是我目前停留在如何在此視圖中的所有可用標簽的串列框中預先選擇當前分配的標簽,以便用戶既可以看到當前存盤在資料庫中的內容,也可以修改分配的標簽。
例如,我有一篇文章分配了任務“幻想”、“報告”和“新聞”。還有一些可用的類別,可以選擇,但目前沒有,例如“有趣”和“音樂”。
在該編輯表單中,所有類別都應在多選欄位中列出(即幻想、報道、樂趣、新聞音樂),并且應該已經為當前選擇的文章選擇了三個分配的類別(幻想、報道、新聞)以被編輯。
我知道我可以將值從我的 Controller 類傳遞到視圖。但我不確定如何完成這項作業。我都需要傳遞所有可用標簽的完整串列和分配標簽的串列。但是如果我這樣做了,如何在視圖中匹配兩個陣列,以便選擇正確的條目,但顯示標簽表的所有條目?
請原諒我沒有提供截圖,但我還沒有完整的代碼。我更想了解這里的基本步驟。如果那里有任何教程或示例,如果您能指出我也將是很棒的。
(我還應該提到的是:我沒有使用任何{!! Form:專案,但我想我想遍歷所有元素,如下所示:
<select multiple class='' name='tags[]' id='tags>
@foreach ($tags as $tag)
<option value="{{ $tag->id }}" (selected?) >{{ $tag->name }}</option>
@endforeach
</select>
有任何想法嗎?
uj5u.com熱心網友回復:
如果你和你一起作業,Collection你可以使用“包含”和“不包含”
做這樣的事情
@foreach($tags in $tag)
@if($assignedTags->contains($tag)
<option value="{{ $tag->id }}" selected >{{ $tag->name }}</option>
@else
<option value="{{ $tag->id }}">{{ $tag->name }}</option>
@endif
@endforeach
可能不是最好的方法,因為在您的視圖中添加“邏輯”,嘗試創建Service并使用刀片dependency injection
uj5u.com熱心網友回復:
該死!在在這里發布之前,我一直在尋找解決方案。但在發布后僅幾分鐘,我想我找到了答案:
https://laracasts.com/discuss/channels/laravel/retrieving-selected-values-from-database-into-a-multiselect
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/485933.html
上一篇:DASL過濾特定日期收到的郵件
