在 Laravel 查询生成器中计算多列

Count multiple columns in Laravel query builder

我正在研究 laravel 查询生成器的“计数” 我想计算列名 'q12a' 和 'q18a'

我可以使用以下代码计算总记录数。

public function count()
{
    $total_projects = Book::count();
    return view('count')->with(['total'=>$total_projects]);
 }
 

但是我在多列中遇到问题
我一直在搜索 count multiple columns 并尝试下面的代码,我得到了

Error Call to a member function count() on int

亲爱的 matiaslauriti 帮助我,我更改代码如下。

UPDATED

public function sum_ttl()
{
    $q18a_count = DB::table('books')->count('q12a')->count('q18a');
    return view('sum_ttl', compact('q12a','q18a'));
 }
 

你能教我如何在控制器和 blade 文件中编写正确的代码吗?

你快到了。 count 将 return 所需列的计数(默认为 *)。所以你想做这样的事情:

public function sum_ttl()
{
    $q12aCount = Books::count('q12a');
    $q18aCount = Books::count('q18a');

    return view('sum_ttl', compact('q12aCount', 'q18aCount'));
}

如果您想分享您想要执行的确切 SQL 查询,我可以尝试将其“翻译”为 Eloquent。