首页 > 解决方案 > 国家列的 Laravel 下拉菜单不起作用

问题描述

我想生成一列的下拉列表并保存在数据库中,这是我尝试过的,但出现错误。

看法:

<select name="nation_id" class="custom-select" >
<option selected value="">Choose...</option>
  <option value="{{@$teacher->nation->id}}"  {{@$teacher->nation->nation== "{{@$teacher->nation->nation}}" ? 'selected' : ''}} >{{@$teacher->nation->nation}}</option>

 </select>

控制器:

$teacher->nation_id = $request->nation_id;
$saved = $teacher->save();
return back()->with('message','Record Successfully Updated!');

评论: 教师是主表,有列nation_id,国家是第二个表,其中包含每个id的国家列表。

标签: laravel

解决方案


看起来您正在尝试在{{ }}其内部使用 Blade 的 echo 语法,因此该行无效:

{{@$teacher->nation->nation== "{{@$teacher->nation->nation}}" ? 'selected' : ''}}

echo 语法中的任何内容{{ }}都是原始 PHP,因此您无需再次使用该语法 - 您可以像往常一样简单地比较字符串:

{{@$teacher->nation->nation== @$teacher->nation->nation ? 'selected' : ''}}

但是,看起来您正在尝试将这个值与相同的值进行比较,因此它总是会返回true并因此将选项显示为选中状态。看起来你的问题不完整。


推荐阅读