我需要使用codeigniter全域變數,我不想為每個控制器頁面創建一個變數,我想做的是像我們在php中把它放在標題中,但我找不到解決方案。
示例變數$template;
控制器1:
class Auth extends CI_Controller{
public function index () {
$this->load->view($template.'Auth')
}
}
控制器2:
class 加載器 擴展 CI_Controller{
public function index () {
$this->load->view($template.'Auth')
}
}
uj5u.com熱心網友回復:
//-create new file in:-/
/application/helpers/template_helper.php
<?php
function admin_template() /span>{
return "admin/home"。
}
//-From controller Auth-/
class Auth extends CI_Controller{
function __construct() /span>{
parent::__construct()。
$this->load->helper('template')。
}
public function index(){
$data['info']="enter info here....";
$this->load->view(admin_template().'Auth'/span>, $data)
}
}
也可以自動加載(template_helper.php)。/application/config/autoload.php
uj5u.com熱心網友回復:
你也可以在app/core下創建一個基礎控制器(例如BASE_Controller.php);然后在這里(基礎控制器上)定義你的全域變數。 之后,只需從控制器中擴展基礎控制器。 這種方法對全域功能也很有用,比如檢查用戶是否登錄,獲取一些全域資料,如設定等。 請看下面的例子:
app/core/BASE_Controller.php
<?php if (! defined('BASEPATH') exit('No direct script access allowed') 。
class BASE_Controller extends CI_Controller
{
public function __construct()。
{
parent::__construct()。
$this->data['info'] = "你的值在這里"。
//如果資訊是從一個函式中宣告的,則按以下方式處理:
$this->data['logged_in'] = $this->checkStatus()。
}
function checkStatus(){
return false;
}
然后在app/controller/Controller.php中
<?php
defined('BASEPATH') OR exit('No direct script access allowed') 。
class Dashboard extends BASE_Controller{
public function __construct()。
{
parent::__construct();
}
public function index()
{
$this->load->view($template.'Auth',$this->data) 。
}
}
你可以簡單地從視圖中訪問你的變數,如$array_index;例如,如果你定義了$this->data['info'],訪問方式為:
$info。
//likewise, if you have $this->data['user_id'], access it as:
$user_id。
對于擴展了Base控制器的控制器,只需以如下方式訪問它:
//$this->data['variable'];
//example;
$user_id = $this-> data['user_id']。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/311014.html
標籤:
下一篇:動態內容上的js事件回圈
