laravel 5.7 whereNull

Posted

技术标签:

【中文标题】laravel 5.7 whereNull【英文标题】: 【发布时间】:2019-07-06 06:38:15 【问题描述】:

我想从特定列的值为 null 的数据库中获取数据,我从 laravel doc query builder 中搜索过说使用 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

【问题讨论】:

你能在你的数据库查询下添加一个 dd($pa) 并发布结果吗? MD.Sukel Ali 的回答很有效,谢谢 【参考方案1】:
@foreach($pa as $data)
   optional($data)->new 
@endforeach

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于laravel 5.7 whereNull的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.7 工匠迁移

laravel 5.7 中的多个文件上传问题

所有值都没有插入我的数据库(laravel-5.7)

e.preventDefault 不适用于 laravel 5.7

如何在 laravel 5.7 中删除用户? [复制]

yajra/laravel-datatables 搜索不适用于 laravel 5.7