0

我有很多用户可以在我的网站中使用的路线,例如,如果他们是一个特定的用户,与另一位用户相比,他们会获得不同的导航。

根据用户所在的部门,我创建了一个 switch 语句来捕获这些 id 并构建它们独特的导航标题:

switch($sector_id){
    /*chefs
    case 'f8721714d845eaa5222dcdb4dd642ceb29a280bc':
        $key_array= array('menus','news','staff','directory');
        $url_array = array('/dashboard/menus/','/dashboard/news2/','/dashboard/staff2/','/dashboard/directory2/');
        $name_array = array('Menus2','News2','Staff2','Directory2');'Recipe Stories', 'Blog', 'Events');
        break;*/
    //restaurants, pubs
    case 'c835ff2d2838b3ea45bdb729c641b73b4fa0098d':
    case '378ee5253530d7d02cea3012966deab24bcc5da2':
        $key_array= array('menus','news','staff','directory');
        $url_array = array('/dashboard/menus/','/dashboard/news/','/dashboard/staff/','/dashboard/directory/');
        $name_array = array('Menus','News','Staff','Directory');
        break;

因此,例如,这是我已经拥有的(硬编码):

array(  'key'   =>  'profile',
        'url'   =>  '/dashboard/profile/',
        'name'  =>  'Profile'),
array(  'key'   =>  'picture',
        'url'   =>  '/dashboard/picture/',
        'name'  =>  'Profile Picture'),
array(  'key'   =>  'cv',
        'url'   =>  '/dashboard/cv/',
        'name'  =>  'CV').

如何动态构造上面的数组?我可以为每个语句使用一个,但它们必须嵌套对吗?任何帮助,将不胜感激。

谢谢

4

1 回答 1

1

您是否考虑过为每种用户类型创建静态导航 html 并仅包含基于用户类型的文件?如果您不想在动态导航上“全力以赴”,这对您来说可能会更容易。无论如何,你的硬编码你的导航......

或者

如果您想真正动态化,请将所有导航项存储在一个表中(id、key、url、名称),并为用户类型和导航项创建一个连接表。

加入表列:(用户类型,navigation_id)

连接表 SQL(未测试)

SELECT * FROM usertype_navigation un JOIN navigation_items ni on un.navigation_id = ni.id WHERE un.usertype = "c835ff2d2838b3ea45bdb729c641b73b4fa0098d"

这将返回所有导航项,遍历每条记录并输出导航项的 html。

于 2012-12-20T20:12:42.187 回答