Php 使用控制器的逻辑在CodeIgniter中获取要更改的按钮值?
我试图根据会话是否正在进行,在登录/注销之间更改按钮的值。逻辑运作得很好。我遇到的问题是将实际的“登录”或“注销”标签从控制器(导航)发送到视图(导航)。我该怎么做?我曾尝试通过TPL发送,但按钮是空白的(尽管单击后功能正常) 控制器:Php 使用控制器的逻辑在CodeIgniter中获取要更改的按钮值?,php,codeigniter,Php,Codeigniter,我试图根据会话是否正在进行,在登录/注销之间更改按钮的值。逻辑运作得很好。我遇到的问题是将实际的“登录”或“注销”标签从控制器(导航)发送到视图(导航)。我该怎么做?我曾尝试通过TPL发送,但按钮是空白的(尽管单击后功能正常) 控制器: <?php defined('BASEPATH') OR exit('No direct script access allowed'); // start the session if(isset($_SESSION)){ session_
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// start the session
if(isset($_SESSION)){
session_start();
}
var $TPL = array();
if(isset($_SESSION["accesslevel"])){
$this->TPL["outPut"] = "Logout";
}
else{
$this->TPL["outPut"] = "Login";
}
class Navigation extends CI_Controller {
public function index()
{
$this->template->show('navigation');
}
}
如果有会话,为什么不签入视图?如果回答是“是”,则表示用户已登录,您将向他显示“注销”按钮,否则您将向他显示“登录”按钮
<?php if ($this->session->userdata('id')){ ?>
<div class="float-right">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<?php echo anchor('User/user_profile/'.$this->session->userdata('id'), 'My profile', array('class' => 'nav-link')); ?>
</li>
<li class="nav-item">
<?php echo anchor('User/logout', 'Log out', array('class' => 'nav-link')); ?>
</li>
</ul>
</div>
<?php }else{ ?>
<div class="float-right">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<?php echo anchor('User/login', 'Login', array('class' => 'nav-link')); ?>
</li>
<li class="nav-item">
<?php echo anchor('User/register', 'Register', array('class' => 'nav-link')); ?>
</li>
</ul>
</div>
<?php } ?>
-
-
-
-
如果有会话,为什么不签入视图?如果回答是“是”,则表示用户已登录,您将向他显示“注销”按钮,否则您将向他显示“登录”按钮
<?php if ($this->session->userdata('id')){ ?>
<div class="float-right">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<?php echo anchor('User/user_profile/'.$this->session->userdata('id'), 'My profile', array('class' => 'nav-link')); ?>
</li>
<li class="nav-item">
<?php echo anchor('User/logout', 'Log out', array('class' => 'nav-link')); ?>
</li>
</ul>
</div>
<?php }else{ ?>
<div class="float-right">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<?php echo anchor('User/login', 'Login', array('class' => 'nav-link')); ?>
</li>
<li class="nav-item">
<?php echo anchor('User/register', 'Register', array('class' => 'nav-link')); ?>
</li>
</ul>
</div>
<?php } ?>
-
-
-
-
在您的视图中是否可以访问$output
您需要将$TPL从控制器传递到视图,并在构造函数中编写会话代码
建造商:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Navigation extends CI_Controller {
private $TPL = array();
function __construct() {
parent::__construct();
if(isset($_SESSION["accesslevel"])){
$this->TPL["outPut"] = "Logout";
}
else{
$this->TPL["outPut"] = "Login";
}
}
public function index()
{
$this->template->show('navigation', $this->TPL);
}
}
在您的视图中是否可以访问$output
您需要将$TPL从控制器传递到视图,并在构造函数中编写会话代码
建造商:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Navigation extends CI_Controller {
private $TPL = array();
function __construct() {
parent::__construct();
if(isset($_SESSION["accesslevel"])){
$this->TPL["outPut"] = "Logout";
}
else{
$this->TPL["outPut"] = "Login";
}
}
public function index()
{
$this->template->show('navigation', $this->TPL);
}
}
您不应该将“var$TPL”放在您的控制器类中,并将$this->TPL[“outPut”]=“Login”;在你的索引方法中,或者在构造函数中?你不应该在你的控制器类中加入“var$TPL”和$this->TPL[“outPut”]=“Login”;在索引方法中,还是在构造函数中?