Я получаю следующую ошибку при загрузке страницы: {{Х0}}

Тем не менее, переменная достигает заданного значения, когда я пытаюсь {{ 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)

Заранее спасибо, отредактирую пост с дополнительной информацией по мере необходимости.

-1
MaybeBotox 20 Дек 2019 в 18:09

2 ответа

Синтаксис выглядит хорошо для меня, но я бы посоветовал вам сделать это:

// 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' : '' }}>

Удачного кодирования!

0
Yassine Beloued 20 Дек 2019 в 15:47

Решено!

Проблема заключалась в том, что при визуализации страницы переменная не была определена в рендере главной страницы (/ create), а только в методе, который рендерил частичное, поэтому, когда я открывал главное окно, переменная еще не была определена, поскольку он был получен от контроллера только после применения фильтра.

Гуманный :

/**
 * GET: /admin/security/groups/create
 */
public function create()
{
    **$userIds = !empty($request['userIds']) ? $request['userIds'] : [];**

( ... )

return view('core::admin.groups.create', [
            'group'      => new Group,
            **'userIds'    => $userIds,**
            'users'      => $users,
            'isCreating' => true,
        ]);
0
MaybeBotox 20 Дек 2019 в 15:36