使用 codeigniter 创建基于级别的动态菜单
create dynamic menu based on level with codeigniter
我想根据laravel制作动态菜单。这是重要信息:
- table_menu :
- 包含字段名等 level_id 为 varchar 类型
- table_level :
- 包含 int 类型的 id 和菜单名称
- 我使用 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();
我想根据laravel制作动态菜单。这是重要信息:
- table_menu :
- 包含字段名等 level_id 为 varchar 类型
- table_level :
- 包含 int 类型的 id 和菜单名称
- 我使用 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();