我有點困惑。我也很肯定這是以前的工作,但...CodeIgniter - 頁面變量undefined的視圖
這是一個非常基本的場景。頁面變量通過$ data在控制器中定義,但由於某些原因,它們在視圖中不可用。除非我失明,否則我看不出任何代碼有問題。
控制功能(全爲超高清晰度):
function login()
{
$data['page_title'] = 'Login title';
$data['page_description'] = 'Login description';
$data['page_keywords'] = 'login,keywords';
$data['referer'] = $this->session->flashdata('referer');
if($this->input->post('email',true) !== false)
{
$this->form_validation->set_rules('email', 'Email', 'trim|required|xss_clean');
$this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_check_password');
if($this->form_validation->run() == FALSE)
{
// Log failed attempt against IP address
$this->bruteforce->log_fail($this->input->ip_address() , $this->input->post('email',true));
}
else
{
// Go to accounts home
if($this->input->post('referer') != '')
{
redirect($this->input->post('referer'));
}
else
{
redirect('dashboard');
}
}
}
$this->load->view('login_view',$data);
}
所以在正常的網頁加載所有這些控制器並設置變量和加載視圖。
視圖(直到故障點)看起來像這樣:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<!-- Meta -->
<title><?php echo $page_title; ?></title>
不過我剛:
Message: Undefined variable: page_title
任何想法? :■
編輯:
行,所以我只是發現了一些奇怪的。
我正在查看上述視圖作爲默認控制器,所以www.domain.com
。但是,如果我直接查看它的URL,在這種情況下:www.domain.com/access/login/
它工作正常。我不知道它爲什麼會有所作爲,但它似乎是事業的根源。但是在這兩種情況下,相同的控制器正在加載。所以我仍然很困惑。
編輯2:請參閱下面的答案。基本上錯誤的控制器正在加載,一個不應該存在的控制器仍然被一些重要功能引用。衛生署。
不,不,恐怕不是這樣。請記住,以上是應用程序其餘部分的工作方式,並且很好(我確信幾星期前它沒有任何變化就很好),所以我懷疑它比這更惡毒,除非我可以看不到樹木。 –
剛剛看到你的編輯並嘗試過,沒有改變。怪怪的? –
嘗試在$ data後面加載您的視圖 –