Php 使用控制器的逻辑在CodeIgniter中获取要更改的按钮值?

Php 使用控制器的逻辑在CodeIgniter中获取要更改的按钮值?,php,codeigniter,Php,Codeigniter,我试图根据会话是否正在进行,在登录/注销之间更改按钮的值。逻辑运作得很好。我遇到的问题是将实际的“登录”或“注销”标签从控制器(导航)发送到视图(导航)。我该怎么做?我曾尝试通过TPL发送,但按钮是空白的(尽管单击后功能正常) 控制器: <?php defined('BASEPATH') OR exit('No direct script access allowed'); // start the session if(isset($_SESSION)){ session_

我试图根据会话是否正在进行,在登录/注销之间更改按钮的值。逻辑运作得很好。我遇到的问题是将实际的“登录”或“注销”标签从控制器(导航)发送到视图(导航)。我该怎么做?我曾尝试通过TPL发送,但按钮是空白的(尽管单击后功能正常)

控制器:

<?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”;在索引方法中,还是在构造函数中?