laravel 5.7 whereNull

问题描述 投票:1回答:2

我想从数据库中获取特定列的值为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
laravel query-builder laravel-5.7 laravel-query-builder
2个回答
1
投票
@foreach($pa as $data)
  {{ optional($data)->new }}
@endforeach

可选函数是一个很好的包装器,如果一个对象为null,你从它访问的任何东西都是null,否则它会正常输出。

但是,我认为$data是一个对象,所以你需要将它转换成一个字符串,或者把它放到HTML中,所以先做。


0
投票

问题不在你的whereNull()方法中。您认为问题在于此。

@foreach($pa as $data)
  {{ $data->column_name }} // you can't print an object instead print a string 
@endforeach
© www.soinside.com 2019 - 2024. All rights reserved.