Скрыть каждую пустую переменную из коллекции - PullRequest
1 голос
/ 16 мая 2019

Иногда {{$vs->users2}} или {{$vs->users3}} будут иметь нулевое значение, мне нужно скрыть их, если оба или один из них имеют нулевое значение. Я пытался с isset или isnull, но ни один из них не работает.

@foreach ($vs as $vs)
    <div class="list-group-item" ng-hide="$vs->users == null">
            <h4>{{$vs->gps_vs}}</h4>
            <h5>Participantes: {{$vs->users4}} {{$vs->users3}} <a>VS</a> {{$vs->users1}} {{$vs->users2}}
            </h5>
            <a>Empieza: {{$vs->time_vs}} {{$vs->date_vs}} </a><a>Creado por: {{$vs->users4}}</a> 
        <div class="right2">
                {!! Form::open(['action' => ['MatchController@destroy', $vs->id], 'method' => 'POST']) !!}
                {{Form::hidden('_method', 'DELETE')}}
                {{Form::submit('Borrar evento', ['class'=>"btn btn-danger"])}}
            {!! Form::close() !!}
        </div>       
    </div>    
@endforeach

моя форма, где приходит нулевое значение

<select class="col-sm-2 form-control" name="users3">
        <option selected value=null>Nothing</option>
      @foreach($users3 as $users3)
        @if ($users3->id == 0 or $users3->id == Auth::user()->id);
        @else
        <option value="{{$users3->nick}}">{{$users3->nick}}</option> 

        @endif
      @endforeach

    </select>

Ответы [ 3 ]

1 голос
/ 16 мая 2019

Можно сделать,

{{$vs->users2 or ''}}

Если выдается ошибка, вы можете отключить ее с помощью @ оператора контроля ошибок

{{@$vs->users2}}

Вы можете использовать то же самое для users3.

EDIT

Измените ваш foreach на @foreach ($vs as $v).

Примечание. Вы не можете использовать одинаковые имена массивов и значений во время цикла.

и замените все против v внутри этого.

РЕДАКТИРОВАТЬ 2

Ваш окончательный HTML должен выглядеть следующим образом

@foreach ($vs as $v)
    <div class="list-group-item" ng-hide="$v->users == null">
            <h4>{{$v->gps_vs}}</h4>
            <h5>Participantes: {{$v->users4 or ''}} {{$v->users3 or ''}} <a>VS</a> {{$v->users1 or ''}} {{$v->users2 or ''}}
            </h5>
            <a>Empieza: {{$v->time_vs}} {{$v->date_vs}} </a><a>Creado por: {{$v->users4}}</a> 
        <div class="right2">
                {!! Form::open(['action' => ['MatchController@destroy', $v->id], 'method' => 'POST']) !!}
                {{Form::hidden('_method', 'DELETE')}}
                {{Form::submit('Borrar evento', ['class'=>"btn btn-danger"])}}
            {!! Form::close() !!}
        </div>       
    </div>    
@endforeach
0 голосов
/ 17 мая 2019

Как сказал @quickSwap {{@ $ vs-> users2}} или {{$ vs-> users2 или ''}}, это работает, но я забыл добавить в миграции

$table->string('users3')->nullable();

для включения нулевых значений в БД.

0 голосов
/ 16 мая 2019

Ссылаясь на ответ @ quickSwap or функция блейда удалена в Laravel 5.7 в пользу встроенного в PHP оператора ?? null coalesce.Вы можете использовать

{{$vs->users2 ?? ''}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...