如果我的代码返回null,则它将生成此错误。如果代码返回了一些数据,则可以正常工作。
控制器
$profile_data= DB::table('partner_prefence')
->select('*')
->where('profile_id',$profile_id)
->first();
return view('partner_prefence',['profile_data' => $profile_data]);
查看/刀片
@php($rel_status = explode(',', $profile_data->p_marital_status))
如果$profile->p_marital_status
有一个值,那么就没有问题。该错误仅在其值为null时出现。
答案 0 :(得分:1)
首先需要检查$ profile_data是否为空或是否有一些数据。 步骤2:检查$ profile_data对象是否具有称为p_material_status的属性。 步骤3:如果以上两种情况均成立,则尝试爆炸数据,否则返回一些错误消息,并尝试不爆炸数据会更好。
<?php
$data = (($profile_data != null) && property_exists($profile_data->p_marital_status)) ? $profile_data->p_marital_status : null)
if($data){
$rel_status = explode(',', $data);
}else{
// Something else
}
?>
答案 1 :(得分:1)
根据条目是否对呈现页面至关重要,可以在控制器中执行检查。
$profile_data = DB::table('partner_prefence')
->select('*')
->where('profile_id',$profile_id)
->firstOrFail()
或者允许将null值传递给视图并进行三元检查。
$profile_data ? $profile_data->p_marital_status : '';
参考文献:
答案 2 :(得分:0)
在这样的句子上简单地使用isset()
或!= null
:
@php($rel_status = $profile_data ? explode(',', $profile_data->p_marital_status?: '')) : [];
答案 3 :(得分:0)
使用optional()
https://laravel.com/docs/5.8/helpers#method-optional
如果给定的对象为null,则属性和方法将返回null而不引起错误。
{!! old('name', optional($user)->name) !!}