languages我通過使用在視圖中顯示所有內容,foreach但如果用戶保存了該語言,我不想顯示該語言。
舉個例子
作為選擇中的選項,我有 3 種語言(英語、韓語、日語)。
如果用戶在表格中保存了英語作為語言,它不應該顯示在選項中。
這是 的模型language。
protected $fillable = [
'language'
];
public function userlanguage()
{
return $this->hasMany(UserLanguage::class);
}
這是我的用戶模型
protected $fillable = [
'user',
'language_ID',
];
public function languages()
{
return $this->belongsTo(Languages::class, 'language_ID');
}
這是控制器
public function index()
{
$userlanguages = UserLanguage::with('user', 'languages', 'proficiency')->where('user_ID', Auth::user()->id)->get();
$languages = Languages::all();
return view('userlanguage',[
'languages' => $languages,
'userlanguages' => $userlanguages
]);
}
這是視圖
<select name="language">
@foreach( $languages as $language )
<option value="{{ $language->id }}">{{ $language->language }}</option>
@endforeach
</select>
</select>
我不知道如何不在選項中顯示用戶保存的語言。
uj5u.com熱心網友回復:
如果你想在視覺上隱藏,你可以在選項中添加一個類,比如
<option
:class="{hidden: $language->id == $userLanguage->id}"
value="{{ $language->id }}"
>{{ $language->language }}</option>
//in CSS
.hidden {display: none;}
如果要完全排除語言:
<select name="language">
@foreach( $languages->filter(fn ($l) => $l->id != $userLanguage->id) as $language )
<option value="{{ $language->id }}">{{ $language->language }}</option>
@endforeach
</select>
uj5u.com熱心網友回復:
嘗試將@if 添加到選擇選項
@foreach( $languages as $language )
@if ($userlanguages != $language)
<option value="{{ $language->id }}">{{ $language->language }}</option>
@endif
@endforeach
uj5u.com熱心網友回復:
嘗試在 select 選項上添加 @if 方法。
<select name="language">
@foreach( $languages as $language )
@if ($userlanguages != $language)
<option value="{{ $language->id }}">{{ $language->language }}</option>
@endif
@endforeach
</select>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/419229.html
標籤:
上一篇:網路抓取結果.csv行的順序錯誤
