これは、アプリケーションで使用するデータベース ERD です。私はKohana 3.2を使用しています。私が達成したいのは、現在ログインしているユーザーのメニューを生成することです。各ユーザーは多くのロールを持つことができるため、そのユーザーに基づいて、(メニューとユーザーに関連する) モジュールが取り込まれたメニューを取得する必要があります。
私はいくつかの foreach ループを通してこれを達成しました。ORM を使用してこれを行うことは可能ですか?
*表「モジュール」はメニュー項目を表します。
編集:これは私の現在のコードです。
$conf_modules = Kohana::$config->load('modules');
$user_roles = $user->roles->find_all();
$result = array();
$array = array();
foreach($user_roles as $user_role)
{
$menus = $user_role->menus->find_all();
$modules = $user_role->modules->find_all();
}
foreach($menus as $menu)
{
$m = $menu->modules->find_all();
$result[]['name'] = $menu->name;
foreach ($m as $a)
{
foreach ($modules as $module)
{
if($a->name == $module->name)
{
foreach ($conf_modules as $key => $value)
{
if($module->name == $key)
{
$array = array(
'module_name' => $module->name,
'text' => $module->display_desc,
'url' => $value['url'],
);
}
}
}
}
array_push($result, $array);
}
}