1

Laravel での多対多の関係に役立つものもあります。

ロールとユーザーの例を使用 - 基本的に:

  • すべてのロールのテーブル
  • ユーザー用のテーブル
  • user_id と role_id を持つテーブル。

年など、3 番目のテーブルに追加します。基本的に、ピボット テーブルには user_id、role_id、year_id があります。

たとえば、特定の年に特定の役割を割り当てられたすべてのユーザーをプルするクエリを作成できるようにしたいと考えています。たとえば、role_id = 2、year_id = 1 のすべてのユーザー。

どんな助けでも大歓迎です

4

3 に答える 3

1

答える前に、このようなデータベースに年を入れないことをお勧めします。すべてのテーブルに必要なものがcreated_atあり、updated_atそれで十分なはずです。

必要に応じてユーザーをフィルタリングします。あなたはこれを行うことができます:

// This queries all users that were assigned to 'admin' role within 2013.
User::join('role_users', 'role_users.user_id', '=', 'users.id')
    ->join('roles', 'roles.id', '=', 'role_users.role_id')
    ->where('roles.name', '=', 'admin')
    ->where(DB::raw('YEAR(role_users.created_at)', '=', '2013')
    ->get();

この例は、探している正確なクエリではないかもしれませんが、思いつくには十分なはずです。

于 2013-03-25T12:28:44.377 に答える