保留在默认控制器上的 Codeigniter 导航栏类别
Codeigniter navbar categories staying on default controller
我在查看我的家(默认控制器)时可以查看动态类别,但是当我单击注册或登录按钮时,类别失败;因为 foreach 似乎在这些页面上不起作用,我将用我的代码进行解释。
控制器(home.php - 默认控制器)
public function index()
{
$data['mcats'] = $this->Categories_model->get_categories();
foreach($data['mcats'] as $key => $val){
$subcats = $this->Categories_model->get_categoriesSub($val['cid']);
if($subcats){
$data['scats'][$val['cid']] = $subcats;
}
}
$this->load->view('home', $data);
}
查看(navigation.php)
<ul class="navbar-nav mr-auto">
<?php
foreach($mcats as $key =>$val) {
?>
<li class="nav-item">
<a class="nav-link" href="<?=$val['cid'];?>"><?=$val['category'];?></a>
</li>
<?php
} ?>
</ul>
无论我是在主页上还是在注册等,我都需要使我的家庭控制器中的索引功能正常工作,
我尝试在家庭控制器中添加更多视图:
$this->load->view('register', $data)
但这只是一维的。
任何帮助将不胜感激。
我已经设法弄清楚如何做到这一点,所以对于其他遇到困难的人来说,这就是我所做的。
家庭控制器
我保留了以下获取类别的函数。
public function index()
{
$data['mcats'] = $this->Categories_model->get_categories();
foreach($data['mcats'] as $key => $val){
$subcats = $this->Categories_model->get_categoriesSub($val['cid']);
if($subcats){
$data['scats'][$val['cid']] = $subcats;
}
}
$this->load->view('home', $data);
}
我复制了 index 函数并将其添加到我的 Auth.php 控制器中,该控制器具有两个功能 - 注册和登录。我在加载注册和登录视图的步骤中添加了索引功能。
Auth.php控制器-注册功能
public function register()
$data['mcats'] = $this->Categories_model->get_categories();
foreach($data['mcats'] as $key => $val){
$subcats = $this->Categories_model->get_categoriesSub($val['cid']);
if($subcats){
$data['scats'][$val['cid']] = $subcats;
}
}
$this->load->view('register', $data);
}
Auth.php 控制器 - 登录功能
public function login()
$data['mcats'] = $this->Categories_model->get_categories();
foreach($data['mcats'] as $key => $val){
$subcats = $this->Categories_model->get_categoriesSub($val['cid']);
if($subcats){
$data['scats'][$val['cid']] = $subcats;
}
}
$this->load->view('login', $data);
}
现在允许该功能在加载登录或注册时工作。
能否尝试使用构造函数,并定义需要在多个函数中使用的变量。
public function __construct(){
//load the model.
$this->load->model('Categories_model', 'Categories_model');
$this->data['mcats'] = $this->Categories_model->get_categories();
foreach($this->data['mcats'] as $key => $val){
$subcats = $this->Categories_model->get_categoriesSub($val['cid']);
if($subcats){
$this->data['scats'][$val['cid']] = $subcats;
}
}
}
public function index()
$this->load->view('home', $this->data);
}
public function register()
$this->load->view('register', $this->data);
}
public function login()
$this->load->view('login', $this->data);
}
我在查看我的家(默认控制器)时可以查看动态类别,但是当我单击注册或登录按钮时,类别失败;因为 foreach 似乎在这些页面上不起作用,我将用我的代码进行解释。
控制器(home.php - 默认控制器)
public function index()
{
$data['mcats'] = $this->Categories_model->get_categories();
foreach($data['mcats'] as $key => $val){
$subcats = $this->Categories_model->get_categoriesSub($val['cid']);
if($subcats){
$data['scats'][$val['cid']] = $subcats;
}
}
$this->load->view('home', $data);
}
查看(navigation.php)
<ul class="navbar-nav mr-auto">
<?php
foreach($mcats as $key =>$val) {
?>
<li class="nav-item">
<a class="nav-link" href="<?=$val['cid'];?>"><?=$val['category'];?></a>
</li>
<?php
} ?>
</ul>
无论我是在主页上还是在注册等,我都需要使我的家庭控制器中的索引功能正常工作,
我尝试在家庭控制器中添加更多视图:
$this->load->view('register', $data)
但这只是一维的。 任何帮助将不胜感激。
我已经设法弄清楚如何做到这一点,所以对于其他遇到困难的人来说,这就是我所做的。
家庭控制器
我保留了以下获取类别的函数。
public function index()
{
$data['mcats'] = $this->Categories_model->get_categories();
foreach($data['mcats'] as $key => $val){
$subcats = $this->Categories_model->get_categoriesSub($val['cid']);
if($subcats){
$data['scats'][$val['cid']] = $subcats;
}
}
$this->load->view('home', $data);
}
我复制了 index 函数并将其添加到我的 Auth.php 控制器中,该控制器具有两个功能 - 注册和登录。我在加载注册和登录视图的步骤中添加了索引功能。
Auth.php控制器-注册功能
public function register()
$data['mcats'] = $this->Categories_model->get_categories();
foreach($data['mcats'] as $key => $val){
$subcats = $this->Categories_model->get_categoriesSub($val['cid']);
if($subcats){
$data['scats'][$val['cid']] = $subcats;
}
}
$this->load->view('register', $data);
}
Auth.php 控制器 - 登录功能
public function login()
$data['mcats'] = $this->Categories_model->get_categories();
foreach($data['mcats'] as $key => $val){
$subcats = $this->Categories_model->get_categoriesSub($val['cid']);
if($subcats){
$data['scats'][$val['cid']] = $subcats;
}
}
$this->load->view('login', $data);
}
现在允许该功能在加载登录或注册时工作。
能否尝试使用构造函数,并定义需要在多个函数中使用的变量。
public function __construct(){
//load the model.
$this->load->model('Categories_model', 'Categories_model');
$this->data['mcats'] = $this->Categories_model->get_categories();
foreach($this->data['mcats'] as $key => $val){
$subcats = $this->Categories_model->get_categoriesSub($val['cid']);
if($subcats){
$this->data['scats'][$val['cid']] = $subcats;
}
}
}
public function index()
$this->load->view('home', $this->data);
}
public function register()
$this->load->view('register', $this->data);
}
public function login()
$this->load->view('login', $this->data);
}