【发布时间】:2015-08-16 03:28:30
【问题描述】:
我正在使用以下 HTML 来显示一个选定的下拉列表,其中包含数据库中的值以及列表中的其他值。它正确显示所选名称,但所选名称也显示在列表中。
如何去掉下拉列表中第二次显示选中的名字?这是使用下拉菜单的好方法吗?这里 Jobcategory 和 Jobdetails 是关联的。
我使用的是 Laravel 4.2,这是 HTML:
//查看下拉表单以保存数据
<div class="large-6 columns">
<label>Job Category
<select name="category[]">
<option value="">Select Category</option>
@foreach(JobCategory::all() as $jcat)
<option value="{{ $jcat->id }}">{{ $jcat->name }}</option>
@endforeach
</select>
</label>
</div>
// 编辑下拉表单以更新所选值
<div class="large-6 columns">
<label>Job Category
<select name="category[]">
<option value="{{$jobedit->jobcategory->id}}">{{$jobedit->jobcategory->name </option>
@foreach(JobCategory::all() as $jcat)
<option value="{{ $jcat->id }}">{{ $jcat->name }}</option>
@endforeach
</select>
</label>
</div>
//工作类别的数据库表
id | name
1 | Accounting/Finance
2 | Advertisement/Event Mgt.
3 | .....
//保存到jobdetails表后
id | jobcategory_id | .......
1 | 5 | ...
我可以在编辑表单中检索 jobcategory 的值,但它在所选值中显示两次一个,在所有 jobcategory 的列出值中显示另一个。这就是问题所在,我只想显示选定的值,然后从 jobcategory 表中显示其余的值,而在下拉列表中没有选择的重复值。请帮忙。
//要编辑的控制器
public function getJobEdit($id)
{
$jobedit = JobDetail::find($id);
return View::make('employers.edit_single_jobs')->with('jobedit', $jobedit);
}
// JobDetail --model
public function jobcategory()
{
return $this->belongsTo('JobCategory');
}
// JobCategory --model
public function jobdetails()
{
return $this->hasMany('JobDetail', 'jobcategories');
}
【问题讨论】:
-
laravel 提供了一个 from_select from 助手,你可以像
{!! Form::select('cities_id', $citys, Input::old('cityes_id'),array('class' => 'form-control')) !!}一样轻松管理它 -
{{ $cat->category_name }}中有什么内容??
标签: mysql laravel laravel-4 eloquent