laravel 5.7 whereNull

时间:2019-02-12 15:07:15

标签: laravel query-builder laravel-5.7 laravel-query-builder

我想从特定列的值为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

2 个答案:

答案 0 :(得分:1)

@foreach($pa as $data)
  {{ optional($data)->new }}
@endforeach

可选函数对此是一个很好的包装,如果对象为null,则从该对象访问的任何内容均为null,否则它将正常输出。

但是,我想$data是一个对象,因此您需要将其转换为字符串,或者将其转换为HTML,因此首先要这样做。

答案 1 :(得分:0)

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

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