我想从数据库中获取特定列的值为null的数据,我从laravel doc查询构建器中搜索说使用whereNull和我做了但是我收到此错误消息
htmlspecialchars()期望参数1为字符串,给定对象(查看:/Applications/XAMPP/xamppfiles/htdocs/PROJECT/overtek/resources/views/pages/purchaseIndex.blade.php)
这是我的控制者
public function index()
{
$pa = DB::table('account_pay_ables')
->whereNull('invoice')
->get();
return view('pages.purchaseIndex',['pa'=>$pa]);
}
我试过这个也是一样的结果
$pa = DB::select("SELECT count(*) as new FROM account_pay_ables WHERE invoice IS NULL");
目前在我的purchaseIndex.blade.php上就是这样
@foreach($pa as $data)
{{ $data}}
@endforeach
@foreach($pa as $data)
{{ optional($data)->new }}
@endforeach
可选函数是一个很好的包装器,如果一个对象为null,你从它访问的任何东西都是null,否则它会正常输出。
但是,我认为$data
是一个对象,所以你需要将它转换成一个字符串,或者把它放到HTML中,所以先做。
问题不在你的whereNull()方法中。您认为问题在于此。
@foreach($pa as $data)
{{ $data->column_name }} // you can't print an object instead print a string
@endforeach