代码之家  ›  专栏  ›  技术社区  ›  Simon

Laravel 11刀片组件,可与阵列一起选择

  •  0
  • Simon  · 技术社区  · 1 年前

    我对Laravel很陌生,我已经创建了一个用于显示选择组件的刀片组件,但当页面渲染时,我会出现以下错误。。属性合并导致了问题,因为我已经对其进行了硬编码,它显示了带有所有选项的选择组件。这听起来像是在试图向我呈现选择行中的数组??如有任何帮助,我们将不胜感激。。

    *我可以看到几年前也提出了同样的问题,但现在肯定有更好的解决方案/解决方案了吗?

    Sending arrays to Blade component (Laravel 8)

    类型错误 trim():参数#1($string)的类型必须为string,给定数组

    这就是我调用组件的方式

    <x-form-select id="club_id" name="club_id" :options="$clubs" />
    

    这是叶片组件:

    <div class="mt-2">
        <select {{ $attributes->merge(['class'=>'block w-full rounded-md border-0 py-1.5 px-3 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:max-w-xs sm:text-sm sm:leading-6']) }}>
            @foreach ($options as $key => $value)
                <option value="{{ $key }}" @selected(old('class_id') == $key)>{{ $value }}</option>
            @endforeach
        </select>
    </div>
    

    这是数组

    $俱乐部=[ “-”=>"", “1”=>“布拉冰球俱乐部”, “2”=>“另一个冰球俱乐部”, “3”=>“一所大学”, “4”=>“A学校”];

    1 回复  |  直到 1 年前
        1
  •  0
  •   Dhruv Pandya    1 年前

    看起来你的 $clubs 不包含正确的数据,组件看起来不错。你的 $俱乐部 应该有一个键值对。

    编辑 我发现了错误。您忘记抓住组件中的道具。 @props(['options']) 将其添加到文件的顶部。

    @props(['options'])
    <div class="mt-2">
        <select
            {{ $attributes->merge([
                'class' =>
                    'block w-full rounded-md border-0 py-1.5 px-3 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:max-w-xs sm:text-sm sm:leading-6',
            ]) }}>
            @foreach ($options as $key => $value)
                <option value="{{ $key }}" @selected(old('class_id') == $key)>{{ $value }}</option>
            @endforeach
        </select>
    </div>