現在ログインしているユーザーのアイテムを取得するスコープを記述する必要があります。現在ログインしているユーザーがすべてのプロジェクトを表示する権限を持っている場合は、システム内のすべてのプロジェクトを一覧表示します。そうでない場合は、ログインしているユーザーによって作成されたプロジェクト、またはユーザーのタスクによって割り当てられたプロジェクトを一覧表示します。 Project モデルに次のスコープを書いてみました:
withBudgetの範囲は次のとおりです
これまでのところ機能していますが、正確ではありません。ログインしているユーザーが管理者であり、すべての権限を持っていることがわかっている場合でも、いくつかのアイテムしか取得されず、アイテムも降順で並べ替えられることがあります。end_date ではなく created_at< /代码> と思われる場合があります。
この問題を解決する方法はありますか?さらに詳しい情報が必要な場合はお知らせください
######編集### いくつかのクエリを削除すると、次のコード スニペットが機能します:リーリー 次に、次のようにしてアイテムを取得します。 リーリー
上記のコード スニペットは機能しますが、実行することは 1 つだけではありません (今のところ積極的な読み込みのことは忘れてください)。期限までの残り時間に基づいてプロジェクトをリストする必要があります。したがって、期限が近い項目、期限がまだある項目、期限が切れている項目の順にリストする必要があります。1 件の回答
順序付けの問題は、latest() と orderBy('end_date', 'desc') を latest() として呼び出していることだと思います。 created_at で動作します。いずれにしても独自の並べ替えを追加するので、おそらく latest() 呼び出しはまったく必要ありません。
ユーザー スコープの問題に関しては、whereHas と orWhereHas の代わりに 2 つの orWhereHas 呼び出しを使用しているかどうか疑問に思っていましたが、これは で機能する可能性があります。 scopeForUser 問題が発生します。
おそらく別のアプローチは次のようになります:
リーリー
Hot Questions
Hot Tools
vc9-vc14 (32+64 ビット) ランタイム ライブラリ コレクション (以下のリンク)
phpStudy のインストールに必要なランタイム ライブラリのコレクションをダウンロードします。
VC9 32ビット
VC9 32 ビット phpstudy 統合インストール環境ランタイム ライブラリ
PHP プログラマー ツールボックスのフルバージョン
プログラマ ツールボックス v1.0 PHP 統合環境
VC11 32ビット
VC11 32ビットphpstudy統合インストール環境ランタイムライブラリ
SublimeText3 中国語版
中国語版、とても使いやすい
ホットトピック
20337
7
13531
4
11852
4
8836
17
8420
7





