保存laravel集合中选择组件的名称而不是id
我想在employees表中保存一个部门的名称,在select组件中,它显示名称,但保存id,因此我认为问题在于它 这是选择组件:保存laravel集合中选择组件的名称而不是id,laravel,html-select,laravelcollective,Laravel,Html Select,Laravelcollective,我想在employees表中保存一个部门的名称,在select组件中,它显示名称,但保存id,因此我认为问题在于它 这是选择组件: {{Form::select('nombre_dep', $departamentos, null, array('class'=>'form-control', 'placeholder'=>'Asignar departamento'))}} 在我的控制器中,我有一个用于返回视图的命令: $departamentos = departamento:
{{Form::select('nombre_dep', $departamentos, null, array('class'=>'form-control', 'placeholder'=>'Asignar departamento'))}}
在我的控制器中,我有一个用于返回视图的命令:
$departamentos = departamento::pluck('nombre_dep', 'id');
在员工模型中,我有以下关系:
public function departamentos(){
return $this->belongsTo('App\departamentos');
}
我希望保存在该字段中,例如:
production
而不是部门id的1
执行键
参数(第二个参数)中的Pull指定,字段
,您要从中获取要在选择的属性的值
中使用的值
$departamentos = departamento::pluck('nombre_dep', 'nombre_dep');
然后,当您将$departmentos
数组传递给Laravel集合select()
时,它将为每个数组元素创建一个
元素,使用数组键作为值
属性,使用数组值作为选项标记内容
{{ Form::select('nombre_dep', $departamentos) }}
所选答案是正确的,但不提供任何解释
问题是您需要创建LaravelCollective表单::select,以便在随后的请求中发送整数id
。您可以通过查看呈现的blade html中表单元素的源来验证这一点。目前的情况如下:
亚洲部
生产
第二部门
第三部门
因此,当在选择(比如)选项1的情况下触发该操作时,您生成的请求只有“nombre_dep”=>“1”
您需要使用所需的选项值来构造表单。像
亚洲部
生产
第二部门
第三部门
要执行此操作,请按如下方式从控制器中传递$departmentos
变量:
$departmentos=array('Production'=>'Production','Department 2'=>'Department 2','Department 3'=>'Department 3');
这是一个简单的方法(如答案所述):
$departmentos=departmento::pull('nombre_dep','nombre_dep');