laravel叶片局部视图错误中的未定义变量

问题描述 投票:0回答:1

加载页面时出现以下错误:Undefined variable: userIds

但是,当我尝试{{ isset($userIds) ? 'Yes' : 'No' }}时,变量达到了给定的部分。到达代码块时,它返回'是'。

在以下输入类型中,变量$ userIds发生错误:

</li>
    @foreach ($users as $index => $user)
        <li class="list-group-item"
            style="{{ (isset($usersFiltered) && is_array($usersFiltered) && !in_array($user->id, $usersFiltered) ) ?
                'display: none;' : ''}}">
            <div class="checkbox">
                <label>
                    <input type="checkbox" class="awe-selectable" id="users[{{ $index }}]" name="users[{{ $index }}]"
                        value="{{ $user->id }}" {{  in_array($user->id,$userIds) ? 'checked' : '' }}>
                    &nbsp;&nbsp;
                    <label for="users[{{ $index }}]">{{ $user->name }}</label>
                </label>
            </div>
        </li>
    @endforeach

我的控制器代码将变量发送到局部变量:

return view('core::admin.groups.partials._users_form', [
        'group'         => $group,
        'users'         => $users,
        'usersFiltered' => $usersFiltered,
        'userIds'       => $userIds,
    ]);

这是语法错误吗?如果我将$ userIds替换为其他任何变量,这些变量也将返回相同的“未定义”错误(例如,使用$ usersFiltered)

谢谢,将根据需要编辑带有更多信息的帖子。

php laravel undefined laravel-blade
1个回答
0
投票

语法对我来说不错,但我建议您这样做:

// in your controller
foreach ($users as $user) {
 $user->checked = false;
 if ((is_array($userIds) and !empty($userIds)) and in_array($user->id, $userIds) {
     $user->checked = true;
 }
}

由于您已将$userIds固定在控制器中,所以现在无需将其发送到视图。

// in your view
<input type="checkbox" class="awe-selectable" id="users[{{ $index }}]" name="users[{{ $index }}]" value="{{ $user->id }}" {{  ($user->checked) ? 'checked' : '' }}>

快乐编码!

© www.soinside.com 2019 - 2024. All rights reserved.