EloquentORMモデルでいくつかの中間テーブルがどのようにあるかについての情報はどこにも見つかりません。私が直面している問題は、ユーザー、権限、および役割のテーブルがあることです。これらは4つのテーブルです:
権限:
id
name
Permission_roles:
id
name
Permission_role_mappings:
id
permission_id
permission_role_id
Permission_role_user_mappings:
id
permission_role_id
user_id
(まあ、私もusers
テーブルを持っていますが、外部キーが入っているので、そのレイアウトは重要ではありませんpermission_role_user_mapping
。)
permissions
したがって、問題は、ユーザーモデルから呼び出すときにテーブルからデータを取得できるようにしたいということです。Eloquent ORMを使用したワークフローを完全に把握するのに問題があるため、重要な基本的なものが不足している場合は、それを指摘してください。
ドキュメントによると、中間テーブルのモデルを作成する必要はないようです。では、Userクラスから関係をどのように指定しますか?これに似たことができますか?
class User extends Eloquent {
public function permission_role()
{
return $this->has_many_and_belongs_to('Permission_Role', 'permission_role_user_mappings');
}
public function permission()
{
return $this->has_many_and_belongs_to('Permission_Role', 'permission_role_user_mappings')->has_many_and_belongs_to('Permission','permission_role_mappings');
}
}
これは機能していないようです。これはエラーです。
User::find(1)->first()->permission()->first();
...
Method [permission] is not defined on the Query class.
また、Permission_RoleとPermissionから開始してデータを取得できるようにしたいと思います。答えが必要なすべてのモデルを指定するのに役立つことを願っています。