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 - 如何将变量(数组和整数)从视图传递到控制器?

如何在 AdminLte 多选下拉列表中加载项目以进行更新 - Laravel 8

Laravel - 如何将数组提取到变量并在刀片中使用它们

如何将 Kendo 下拉列表转换为 Kendo 多选

在 laravel 8 中使用选择选项的旧多选数组