使用 codeigniter 创建基于级别的动态菜单

create dynamic menu based on level with codeigniter

我想根据laravel制作动态菜单。这是重要信息:

  1. table_menu :
    • 包含字段名等 level_id 为 varchar 类型
  2. table_level :
    • 包含 int 类型的 id 和菜单名称
  3. 我使用 codeigniter 和 sql

所以这个想法是,而不是将数据一个接一个地插入 table_menu(例如,如果我有 5 个菜单和 2 个级别,那么在 table 上总共有 10 个菜单数据菜单)。

所以我认为,最好的办法是我只需要在 table_menu 中的字段 level_id 上插入 csv (level_id => 1(admin),4( user),5(etc)。无论级别多少,这都会给我 5 个菜单。对吗?

但问题是如何?这甚至可能吗?

我试过这样:

$this->db->where('parent', true)->where_in('level_id', $this->session->userdata('level_id'))->get('table_menu')->result();

但是没有用。谁能帮帮我?

我终于明白了! 我看了很多关于find_in_set sql的查询,终于成功了。这是最终代码:

$this->db->query("SELECT * FROM table_menu where FIND_IN_SET( ".$this->session->userdata('level_id').", level_id) > 0")->result();