Laravel将变量传递给多选下拉数组到字符串转换错误
Posted
技术标签:
【中文标题】Laravel将变量传递给多选下拉数组到字符串转换错误【英文标题】:Laravel Passing Variables to Multiple Select Drop Down Array to string conversion Error 【发布时间】:2019-01-12 22:29:03 【问题描述】:我正在尝试从 laravel 应用程序中的 @foreach
中的 $specialties
变量中显示的专业下拉列表中推送多个选择。我能够捕获 1 个 id 并将其推送到数据库,但多项选择不起作用。它只将一个 ID 推送到数据库。当我尝试如下 name="specialties[]" 时,出现错误:数组到字符串的转换。如何使用 eloquent 将我的选择推送到数组中?
我的表单视图:
<div class="container">
csrf_field()
<strong>Select Specialty:</strong>
<select id="multiple-checkboxes2" multiple="multiple" name="specialties[]" value="specialties">
@if($specialties)
@foreach($specialties as $specialty)
<option value=" $specialty->id ">$specialty->name</option>
@endforeach
@endif
</div>
</select>
!! Form::close() !!
<script type="text/javascript">
$(document).ready(function()
$('#multiple-checkboxes2').multiselect();
);
客户端存储控制器
public function store(Request $request)
//
Client::create([
'specialties' => $request->specialties,
] );
return redirect('/accounts');
客户端显示控制器
public function display($id)
$specialties=Specialty::select( 'name', 'id')->orderBy('name', 'asc')->get('id');
return view('accounts/display', compact('accounts', 'specialties', )->withAccount($accounts);
【问题讨论】:
【参考方案1】:尝试使用数组
<select id="multiple-checkboxes2" multiple="multiple" name="specialties[]">
@if($specialties)
@foreach($specialties as $specialty)
<option value= " $specialty->id ">$specialty->name</option>
@endforeach
@endif
</select>
【讨论】:
如果我这样做,我会得到一个数组到字符串的转换错误,这至少是一个新错误......有什么想法吗?我想我需要在我的显示控制器中创建第二个变量,它获取专业的 id 并将其传递给值,而 $specialty-name 仍然用作选择 如果我将 我能够使用 $specialties=Specialty::select( 'name', 'id')->orderBy('name', 'asc') 捕获 id 并将其推送到数据库->get('id');但这不会将多个选择推送到数据库。当我包含 name="specialties[]" 时出现错误:数组到字符串转换以上是关于Laravel将变量传递给多选下拉数组到字符串转换错误的主要内容,如果未能解决你的问题,请参考以下文章
我应该如何从 Angular-2 的下拉列表中使用多选选项绑定数组
Laravel 5.2 - 如何将变量(数组和整数)从视图传递到控制器?