#php #laravel #laravel-blade #conditional-operator
#php #laravel #laravel-blade #условный оператор
Вопрос:
Я пытаюсь реализовать условный оператор для значения, возвращаемого контроллером, для создания некоторого пользовательского представления.
front.blade
@if({{count($users)}} <= 5) <!-- if total number of rows in users table is less than or equal to 5 -->
<h3> total number of rows less than or equal to 5 </h3>
@endif
контроллер
$users = User::all();
return view('front', [ 'users'=>$users]);
и ошибка
синтаксическая ошибка, неожиданный ‘<‘(Просмотр: resourcesviewsfront.blade.php )
Перепробовал все комбинации перестановок, включая ввод условия в {{ }} или цитирование оператора или постоянного значения 5, ошибка остается неизменной. Я новичок в laravel, и это может быть фундаментальной ошибкой в отношении laravel или php.
Комментарии:
1.
{{ }}
предназначен для воспроизведения данных (это echo) .. все внутри директив blade — это обычный PHP … так что все внутри@if (...)
— это просто PHP, и вы должны относиться к нему как к таковому… получайте удовольствие и удачи
Ответ №1:
Просто удалите {{
и }}
, они не нужны, кроме директивы Blade ( @if
в данном случае)
Ответ №2:
Вам нужно удалить {{ }} внутри условия if.
Вот так.
@if(count($users) <= 5) <!-- if total number of rows in users table is less than or equal to 5 -->
<h3> total number of rows less than or equal to 5 </h3>
@endif
Ответ №3:
сначала вам нужно понять, когда вам нужно использовать фигурные скобки.
при отображении ваших данных в файле blade вам необходимо использовать фигурные скобки. Нравится
Hello, {{ $name }}.
Вы можете создавать операторы if, используя директивы @if, @elseif, @else и @endif. Эти директивы функционируют идентично своим аналогам на PHP:
@if (count($records) === 1)
I have one record!
@elseif (count($records) > 1)
I have multiple records!
@else
I don't have any records!
@endif
Ваше решение
@if(count($users) <= 5) <!-- if total number of rows in users table is less than or equal to 5 -->
<h3> total number of rows less than or equal to 5 </h3>
@endif
подробности см. в документации laravel https://laravel.com/docs/7.x/blade#if-statements
Ответ №4:
В контроллере измените свой код следующим образом —
$users = User::all();
return view('front', compact('users'));
Код блейд-файла-
@if(count($users) <= 5) <!-- if total number of rows in users table is less than or equal to 5 --><h3> total number of rows less than or equal to 5 </h3>@endif