синтаксис для условного оператора с {{ }} в блейде laravel

#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