[英]How to check if object key exists and is not null or if it is a certain value in a foreach loop in Laravel blade?
我在blade中有一個foreach循環,我在其中循環遍歷項目數組,有些項目有一個名為validation_status的附加鍵,它是null或object。
一個例子:
category: "Storage"
client_id: 6575
created_at: "2019-08-12 15:50:04"
created_by: 233
datasheet: null
deleted_at: null
description: "3erty"
energy_rating: 0
fk_item_type: 83
id: 369
item_model_id: 475
model_number: null
power_consumption: 3
searchable: 1
shared: 1
updated_at: "2019-11-09 17:59:04"
updated_by: 233
validated: 0
validation_status: null
vendor: null
category: "Network"
client_id: 6575
created_at: "2019-07-11 16:04:56"
created_by: 233
datasheet: null
deleted_at: null
description: "2we5"
energy_rating: 0
fk_item_type: 83
id: 357
item_model_id: 470
model_number: null
power_consumption: 55
searchable: 1
shared: 1
updated_at: "2019-11-07 10:29:57"
updated_by: 233
validated: 0
validation_status:
created_at: "2019-11-07 16:08:49"
id: 2
item_id: 357
item_type: "IT_Analysis"
message: null
name: "pending"
updated_at: "2019-11-07 16:08:49"
__proto__: Object
vendor: null
如果首先存在validation_status並且其名為name的鍵是某個值(例如“待定”),我想做一些事情。 我怎樣才能在刀片中做到這一點?
這是我的嘗試,現在else 條件被執行為true ,所以我的if 條件有問題:
<p>
@if($item->validation_status && $item->validation_status !== null)
@if($item->validation_status->name === "pending" )
<?php echo link_to('admin/items/' . $item->id . '/validation-status' . $item->validation_status->id . '/complete', 'Validate', array('class' => 'btn btn-primary w-full')); ?>
<?php echo link_to('admin/items/' . $item->id . '/validation-status' . $item->validation_status->id . '/documentation-needed', 'Request documentation', array('class' => 'btn btn-primary w-full')); ?>
<?php echo link_to('admin/items/' . $item->id . '/validation-status' . $item->validation_status->id . '/reject', 'Reject', array('class' => 'btn btn-primary w-full')); ?>
@endif
@else
<?php echo Form::submit('Accept and Save!', array('class' => 'btn btn-primary w-full')); ?>
@endif
</p>
它是 object,而不是數組。
@php $check = isset($items->validation_status); @endphp
如果屬性不存在或者是 null,則 isset() 將返回 false。
因此,它非常適合您的情況。
@if($check)
//Execute your code
@endif
更清晰的方法是使用 Laravel 內置助手“可選”
例如,如果關系是 null,此代碼將不會拋出錯誤
{{ optional($this->category)->name }}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.