【问题标题】:laravel 5.7 whereNulllaravel 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 的回答很有效,谢谢

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


【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2016-11-04
      • 2021-02-07
      • 2021-08-31
      • 2019-04-15
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多