簡體   English   中英

在 Laravel 中將已經可用的值填充到 CRUD 編輯表單中

[英]fill already available values into CRUD edit form in Laravel

比方說,我有一個 Laravel 應用程序,其中的文章可以關聯多個標簽(即 n:m 關系)。 創建這些記錄工作得很好,我還可以檢索選定的標簽數組。 所有必要的關系都可用並在 Eloquent 或模型中工作。

現在,我想在此應用程序中創建一個編輯表單。 此編輯表單應在預填表單中顯示所選文章的所有文章詳細信息,用戶可以在其中更改詳細信息。 這也適用於所有標准文本字段。 但是我目前卡在如何在此視圖中的所有可用標簽的列表框中預選當前分配的標簽,以便用戶既可以看到數據庫中當前存儲的內容又可以修改分配的標簽。

例如,我有一篇文章分配了任務“幻想”、“報道”和“新聞”。 還有一些可用的類別,可以選擇,但目前還沒有,例如“娛樂”和“音樂”。

在那個編輯表單中,所有的類別都應該在多 select 字段中列出(即幻想,報告,娛樂,新聞音樂),並且應該已經為當前選擇的文章選擇了三個分配的類別(幻想,報告,新聞)被編輯。

我知道我可以將值從我的 Controller class 傳遞到視圖。 但我不確定如何完成這項工作。 我都需要傳遞所有可用標簽的完整列表和已分配標簽的列表。 但是如果我這樣做了,將如何匹配視圖中的兩個 arrays,以便選擇正確的條目,但顯示標簽表的所有條目?

請原諒我沒有提供截圖,但我還沒有完整的代碼。 我更想了解這里的基本步驟。 如果那里有任何教程或示例,那么如果您能指出它們,那就太好了。

(我還應該提到的是:我沒有使用任何{:! Form:項目,但我想我想遍歷所有元素,如下所示:

<select multiple class='' name='tags[]' id='tags>
@foreach ($tags as $tag)
    <option value="{{ $tag->id }}"  (selected?) >{{ $tag->name }}</option>
@endforeach
</select>

有任何想法嗎?

如果您使用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

該死。 在發帖之前我一直在尋找解決方案:但發帖幾分鍾后我想我找到了答案:

https://laracasts.com/discuss/channels/laravel/retrieving-selected-values-from-database-into-a-multiselect

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM