Model 在laravel 4中使用五种模型的雄辩映射表关系
我有一个从数据库加载菜单的项目。该体系结构首先是顶部水平菜单(管理、设置、报告)的模块,然后是左侧栏垂直菜单标题(用户、书籍)的子模块,最后一个是节点,单击子菜单(用户管理、密码重置、书籍主控、书籍列表)时展开 这样,节点将只出现一次,模块和子模块将重复 共有五个表:菜单模块、菜单子模块、模块子模块映射、菜单节点和子模块节点映射 “菜单模块字段”-菜单模块id、模块名称、创建时间、更新时间 “菜单子模块”字段-菜单子模块id、子模块名称、创建时间、更新时间 “模块子模块映射”字段-子模块映射标识、菜单子模块标识、菜单子模块标识、创建子模块标识、更新子模块标识 “菜单节点”字段-菜单节点id、节点名称、创建位置、更新位置 “子模块\节点\映射”-节点\映射\ id,菜单\子模块\ id,菜单\节点\ id,创建\在,更新\在 首先,我必须使用laravel 4中的雄辩关系获得类似此查询的结果:Model 在laravel 4中使用五种模型的雄辩映射表关系,model,laravel,laravel-4,relationship,eloquent,Model,Laravel,Laravel 4,Relationship,Eloquent,我有一个从数据库加载菜单的项目。该体系结构首先是顶部水平菜单(管理、设置、报告)的模块,然后是左侧栏垂直菜单标题(用户、书籍)的子模块,最后一个是节点,单击子菜单(用户管理、密码重置、书籍主控、书籍列表)时展开 这样,节点将只出现一次,模块和子模块将重复 共有五个表:菜单模块、菜单子模块、模块子模块映射、菜单节点和子模块节点映射 “菜单模块字段”-菜单模块id、模块名称、创建时间、更新时间 “菜单子模块”字段-菜单子模块id、子模块名称、创建时间、更新时间 “模块子模块映射”字段-子模块映射标识
SELECT A.module_name,B.sub_module_name FROM menu_module A,menu_sub_modules B,module_submodule_mapping C WHERE A.menu_module_id = C.menu_module_id AND B.menu_sub_module_id = C.menu_sub_module_id
然后,第二个结果类似于此查询:
SELECT A.node_name FROM menu_nodes A,submodule_node_mapping B WHERE A.menu_node_id = B.menu_node_id AND C.menu_sub_module_id = '1'
谁能解释一下模型的结构和方法,以及如何在视图中得到结果。请注意,我使用的是我自己的id字段,如menu_node_id,项目位于laravel 4中。我相信,通过您要做的事情,使用查询生成器可以减少混乱,因为它有对表执行联接的方法。这需要对表结构进行一点重建,但最终应该更容易理解 菜单单元
DB::table('menu_modules')
->JOIN('menu_sub_modules', 'menu_sub_modules.menu_id', '=', 'menu_modules.id')
->JOIN('menu_nodes', 'menu_nodes.sub_id', '=', 'menu_sub_modules.id')
->get();
DB::table('menu_modules')
->JOIN('menu_sub_modules', 'menu_sub_modules.menu_id', '=', 'menu_modules.id')
->JOIN('menu_nodes', 'menu_nodes.sub_id', '=', 'menu_sub_modules.id')
->get();