laravel 能言善辩拉瑞维尔:如何从->get()中获取行计数

v09wglhw  于 2022-12-05  发布在  其他
关注(0)|答案(5)|浏览(195)

我在弄清楚如何使用此集合来计算行时遇到了很多麻烦。

$wordlist = \DB::table('wordlist')->where('id', '<=', $correctedComparisons)
                ->get();

我试过adding->count(),但是没有成功。我试过做count($wordlist)。我不确定如果不需要第二次请求a->count()方法该怎么做。

bfnvny8b

bfnvny8b1#

答案已更新

count是一个Collection方法。查询生成器返回一个数组。因此,为了获得计数,您只需像通常使用数组一样对其进行计数:

$wordCount = count($wordlist);

如果你有一个单词表模型,那么你可以使用Eloquent来得到一个集合,然后使用集合的count方法。

$wordlist = Wordlist::where('id', '<=', $correctedComparisons)->get();
$wordCount = $wordlist->count();

此处讨论了如何让查询生成器返回集合:https://github.com/laravel/framework/issues/10478
但是,到目前为止,查询生成器始终返回数组。
编辑:如上所述,查询生成器现在返回一个集合(而不是数组)。因此,JP Foster最初尝试做的事情将起作用:

$wordlist = \DB::table('wordlist')->where('id', '<=', $correctedComparisons)
            ->get();
$wordCount = $wordlist->count();

然而,正如Leon在注解中指出的,如果你想要的只是计数,那么直接查询它要比获取整个集合然后获得计数快得多。换句话说,你可以这样做:

// Query builder
$wordCount = \DB::table('wordlist')->where('id', '<=', $correctedComparisons)
            ->count();

// Eloquent
$wordCount = Wordlist::where('id', '<=', $correctedComparisons)->count();
roqulrg3

roqulrg32#

直接获取行数

运用雄辩术

//Useing Eloquent
 $count = Model::count();    

 //example            
 $count1 = Wordlist::count();

使用查询生成器

//Using query builder
 $count = \DB::table('table_name')->count();

 //example
 $count2 = \DB::table('wordlist')->where('id', '<=', $correctedComparisons)->count();
3b6akqbq

3b6akqbq3#

最好使用laravels计数方法访问计数

$count = Model::where('status','=','1')->count();

$count = Model::count();
rjjhvcjd

rjjhvcjd4#

此外,您还可以提取blade文件中的所有数据和计数。例如:
控制器中的代码

$posts = Post::all();
return view('post', compact('posts'));

您的代码。

{{ $posts->count() }}

最后,您可以看到您的帖子总数。

kr98yfug

kr98yfug5#

//控制器$count = Post::count(); return view('post', compact('count'));
//刀片{{$count}}
或//控制器$posts = Post::all(); return view('post', compact('posts'));
//刀片{{count($posts)}}

相关问题