このコレクションを使用して行をカウントする方法を理解するのに多くの問題があります。
_$wordlist = \DB::table('wordlist')->where('id', '<=', $correctedComparisons)
->get();
_
私はadding->count()
を試しましたが、うまくいきませんでした。 count($wordlist)
を試してみました。 a->count()
メソッドとして2番目のリクエストを必要とせずに何をすべきか本当にわかりません。
回答が更新されました
count
はコレクションメソッドです。クエリビルダーは配列を返します。したがって、カウントを取得するには、通常の配列の場合と同じようにカウントします。
$wordCount = count($wordlist);
ワードリストモデルがある場合は、Eloquentを使用してコレクションを取得し、コレクションのcount
メソッドを使用できます。例:
$wordlist = Wordlist::where('id', '<=', $correctedComparisons)->get();
$wordCount = $wordlist->count();
クエリビルダーにコレクションを返すようにすることについての議論があります/ここにありました: https://github.com/laravel/framework/issues/10478
ただし、現時点では、クエリビルダーは常に配列を返します。
編集:上記のように、クエリビルダーはコレクション(配列ではない)を返すようになりました。その結果、JPフォスターが最初に試みていたことが機能します。
$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();
行数を直接取得する
雄弁を使う
//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();
Laravels countメソッドでカウントにアクセスする方が良い
$count = Model::where('status','=','1')->count();
または
$count = Model::count();