Обрабатывать пустые или нулевые переменные в блейде Laravel - PullRequest
0 голосов
/ 24 сентября 2019

Я создаю два массива ( A1 и A2 ) на стороне сервера в результате ->paginate(20) и отправляю тему на индексный диск через две переменные.зависит от содержимого несколько раз, все первые 20 сообщений основаны на массиве A1 , поэтому страница возвращает ошибку неопределенная переменная: A2 .

Даже если A2 полностью null (и не только из-за нумерации страниц), я хочу обрабатывать его в блейдах, чтобы он возвращал только пустые, а не ошибки.

Я пробовал @if($A2), @if(!is_null($A2)), @empty проверки на блейд-серверах, но все еще возникает ошибка.

Также я делаю $A2=""; на стороне сервера перед операциями, а затем страница возвращается Попытка получить свойство необъекта .

1 Ответ

2 голосов
/ 24 сентября 2019

Похоже, что на вашей блейд-странице есть несколько мест, где вызывается переменная $A2.Вы можете попытаться пройти и найти все из них, а затем поставить перед ними проверку if, например @if(isset($A2) { do something with $A2 }

Но более простой подход и, возможно, лучший для читабельности и будущего кода может состоять в инициализации переменной длянезависимо от типа коллекции это на вашем контроллере.У вас была правильная идея с $A2="";, но это строка, и ваш код на блейд-странице ищет объект (вы, вероятно, называете что-то вроде $A2->field).

Вот упрощенноепример - вы можете это очистить, но, надеюсь, это облегчит понимание.На вашем контроллере что-то вроде этого:

$A2 = MyModel::find($someId);
if(!isset($A2)){
  $A2 = new MyModel();
} 

Затем обязательно отправьте на свою блейд-страницу как минимум инициализированный объект модели.

 return view('page.pages', compact('A2'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...