laravel 5.7 whereNull

laravel 5.7 whereNull

我想从数据库中获取数据,其中特定列的值为空,我从 laravel 文档查询生成器中搜索说使用 whereNull 并且我做了但是我收到了这个错误消息

htmlspecialchars() expects parameter 1 to be string, object given (View: /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

问题不在您的 whereNull() 方法中。问题在你看来。

@foreach($pa as $data)
  {{ $data->column_name }} // you can't print an object instead print a string 
@endforeach
@foreach($pa as $data)
  {{ optional($data)->new }}
@endforeach

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

但是,我想 $data 是一个对象,因此您需要将其转换为字符串,或者将其放入 HTML,因此请先执行此操作。