Не показывать, если 1 переменная равна 0, а другая пуста в laravel - PullRequest
0 голосов
/ 17 марта 2019

Я не знаю, почему я не могу заставить это условие работать.Сначала я покажу вам, что вы можете использовать таблицу.

@foreach( $w1ProductHistory as $w1ph )
    @php
    $totalCost = $w1ph->orderItem->cost * $w1ph->stock_in_qty;
    @endphp
    @if($w1ph->stock_in_qty!='0' && $w1ph->delivery_note!='')
    <tr>
        <td>{{$w1ph->orderItem->product_code}}</td>
        <td>{{$w1ph->orderItem->product_name}}</td>
        <td><a href="{{ URL('/orders/'.$w1ph->order->id)}}" class="text-info">{{$w1ph->order->purchase_no}}</a></td>
        <td>{{$w1ph->delivery_date}}</td>
        <td>{{$w1ph->companies->comp_name}}</td> 
        <td>{{$w1ph->orderItem->cost}}</td>
        <td>{{$w1ph->stock_in_qty}}</td>
        <td>{{number_format($totalCost)}}</td>
        <td>
            @if(isset($w1ph->delivery_note))
                <a data-placement="left" data-toggle="tooltip" title="Delivery Notes: {{$w1ph->delivery_note}}" href="{{-- {{ route('orders.edit',$order->id) }} --}}" class="btn btn-sm btn-icon btn-default"><i class="fab fa-readme"></i></a>
            @endif
        </td>
    </tr>
    @endif
@endforeach

Я пытаюсь скрыть, если только $ w1ph-> stock_in_qty! = '0 и $w1ph-> delivery_note! = '' .

если $ w1ph-> stock_in_qty! = '0 , но $ w1ph-> delivery_note! =' ' имеет значение, строка должна отображаться.

Я уже пробовал @if($w1ph->stock_in_qty!='0' && $w1ph->delivery_note!=''), @if($w1ph->stock_in_qty!='0' && !empty($w1ph->delivery_note)), даже изменив "&&" на и.Тем не менее, он скрывает ряд, даже если выполняется только одно условие.

Опять же, я пытаюсь скрыть строку, только если оба условия не удовлетворяют ни одному из них.Как мне этого добиться?заранее спасибо!

Ответы [ 2 ]

1 голос
/ 17 марта 2019

Является ли это вполне законным кодом, чтобы иметь теги @php в блейд-файле, но вы можете пересмотреть, если вам действительно нужно сделать это таким образом.

Почему? Потому что это делает ваш блейд-файл более чистым, и вы должны стремиться сохранить блейд-файлы без какой-либо другой логики, кроме получения атрибутов / отношений. Кроме того, если вам нужно выполнить этот расчет в каком-то другом месте вашего приложения, он у вас есть в модели, и если алгоритм, лежащий в основе значения, изменится, вам просто нужно изменить его в одном месте.

Лучшее решение, по моему мнению, состоит в том, чтобы определить атрибут вашей модели ProductHistory (?), Который дает вам это значение, и просто сделать $ w1ph-> totalCost;

Также я бы добавил атрибут, который возвращает логическое значение, основываясь на том, нужно ли отображать этот элемент в таблице или нет, что-то вроде $ w1ph-> showInTable / visible / showDisplay и т. Д.

Вы пробовали без кавычек вокруг 0? или считать ($ w1ph -> stock_in_qty) == 0)?

0 голосов
/ 17 марта 2019

Я думаю, вы пытаетесь что-то вроде

    @if(count($w1ph->stock_in_qty)>0)&& (count($w1ph->delivery_note)>0))

@endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...