Laravel集合不包含

Laravel集合不包含

问题描述:

我有一个幼虫集合,我试图让它显示不包含值的结果。Laravel集合不包含

我知道$ data-> contains(key,value),它基本上需要与此相反。我正在尝试在刀片模板中执行此操作,代码如此;如预期

@if(!$orders->contains('order_status', 'Complete')) 

@if($orders->contains('order_status', 'Complete') === false) 

但既不工程。

任何想法或替代方法(如果可能,想尝试并保留刀片中的逻辑)?

感谢


从集合

array(2) { 
    [0]=> 
    array(26) { 
    ["id"]=> 
    int(1) 
    ["user_id"]=> 
    int(3) 
    ["cv"]=> 
    int(0) 
    ["cv_details"]=> 
    NULL 
    ["cl"]=> 
    int(1) 
    ["cl_details"]=> 
    string(0) "" 
    ["ja"]=> 
    int(1) 
    ["ja_details"]=> 
    string(0) "" 
    ["order_status"]=> 
    string(13) "PreAuthorized" 
    ["advisor_id"]=> 
    NULL 
    ["created_at"]=> 
    string(19) "2017-07-18 10:38:06" 
    ["updated_at"]=> 
    string(19) "2017-07-18 10:38:22" 
    ["preAuthId"]=> 
    string(8) "29506753" 
    ["days"]=> 
    int(3) 
    ["customer_value"]=> 
    int(86) 
    ["due"]=> 
    string(19) "2017-07-21 10:38:22" 
    ["ck_fee"]=> 
    float(25.65) 
    ["cv_company"]=> 
    NULL 
    ["cv_role"]=> 
    NULL 
    ["cl_company"]=> 
    string(0) "" 
    ["cl_role"]=> 
    string(0) "" 
    ["ja_company"]=> 
    string(0) "" 
    ["ja_role"]=> 
    string(0) "" 
    ["cv_sector"]=> 
    string(2) "IT" 
    ["cl_sector"]=> 
    string(2) "IT" 
    ["ja_sector"]=> 
    string(2) "IT" 
} 

更多的代码的项目的var_dump;

 @if($orders->contains('order_status', 'Complete')) 
        <h4>Completed orders</h4> 
        <table class="table table-hover"> 
         <thead> 
         <tr> 
          <th>Order #</th> 
          <th>Cost</th> 
          <th>Completed On</th> 
          <th>View Files</th> 
         </tr> 
         </thead> 
         <tbody> 
         @foreach($orders as $order) 
          @if($order->order_status == 'Complete') 

           <tr> 
            <td>{{ $order->id }}</td> 
            <td>£ {{ $order->customer_value }}</td> 
            <td>{{ $order->updated_at }}</td> 
            <td><a href="/view-order/{{ $order->id }}">View Files</a></td> 
           </tr> 
          @endif 
         @endforeach 

         </tbody> 
        </table> 
        </tbody> 
        </table> 
       @endif 
       @if(!$orders->contains('order_status', 'Complete')) 
        <h4>Orders in progress</h4> 
        <table class="table table-hover"> 
         <thead> 
         <tr> 
          <th>Order #</th> 
          <th>Placed on</th> 
          <th>Due by</th> 
          <th>Cost</th> 
          <th>Status</th> 
         </tr> 
         </thead> 
         <tbody> 
         @foreach($orders as $order) 
          @if($order->order_status !== 'Complete') 
           <tr> 
            <td>{{ $order->id }}</td> 
            <td>{{ $order->created_at }}</td> 
            <td>{{ $order->due }}</td> 
            <td>£ {{ $order->customer_value }}</td> 
            <td>{{ $order->order_status }}</td> 
           </tr> 
          @endif 
         @endforeach 

         </tbody> 
        </table> 
       @endif 
+0

你的收藏是什么样的?这是正确回答这个问题的关键,因为'contains'的工作原理。 – Samsquanch

+0

@Samsquanch我怎么能张贴集合,而不是它很大? var_dump好吗? – Ash

+0

'var_dump($ collection-> toArray())'输出只有几个项目。 – Samsquanch

原来,这只是一个逻辑错误as discussed in chat

@if(!$orders->contains('order_status', 'Complete')) 

这是说,只显示表时,其中没有订单与order_status“完成”,而不是预期的“表演这个,如果有任何的订单是不是‘完成’”。