为什么在 Laravel 中只输出数组的最后一个元素?

时间:2021-02-18 20:24:58

标签: php laravel

我有一个需要选择值的选择。 Select 是使用 foreach 循环形成的。我得到的值正确无误,但是当我尝试将此值放入会话时,始终只有循环的最后一个值进入其中。这是为什么?

<div class="form-group">
    <label for="category">Choose category</label>
    <select class="form-control" id="category" name="category_slug" onchange = "getSelectValue();">
        @foreach($categories as $category)
            <option value="{{$category->slug}}">{{$category->name}}</option>
            {{session(['key' => $category->slug])}}
        @endforeach
    </select>
    @dump(session('key'))
</div>

1 个答案:

答案 0 :(得分:0)

在您的循环中,您每次迭代都会覆盖 key,以便仅将最后一个类别放入会话中。

如果您想将所有类别放入会话中,您应该给每个项目一个单独的会话密钥,如下所示:

<select class="form-control" id="category" name="category_slug" onchange = "getSelectValue();">
        @foreach($categories as $index => $category)
            <option value="{{$category->slug}}">{{$category->name}}</option>
            {{session(['category_'.$index => $category->slug])}}
        @endforeach
</select>