MVC CodeIgniter,无法将数组传递给视图
MVC CodeIgniter, trouble getting array to pass to view
我的想法是检查数据库中的值是否取决于字段是否为 null 取决于按钮的状态,get_login_state() 可以正常工作并获得所需的结果,但是 get_break_state () 没有。
In my controller in the if($resultTwo){} The code in here never executes but resultTwo collects the result and isn;t null so I don;t understand why.
Here is my controller:
$resultOne = $this->dashboard_model->get_login_state($user_id);
//die(print_r($resultOne));
$resultTwo = $this->dashboard_model->get_break_state($user_id, $this->session->userdata('user_session'));
//die(print_r($resultTwo));
$this->login_state = array();
if($resultOne){
$this->login_state['resultWork'] = $resultOne;
$this->template->content = View::factory('dashboard', $this->login_state);
} else {
return $this->normal['status'] = false;
}
//die(print_r($resultTwo));
if($resultTwo) {
//die('two');
$this->login_state['resultBreak'] = $resultTwo;
$this->template->content = View::factory('dashboard', $this->login_state);
} else {
return $this->normal['status'] = false;
}
这是我的模型:
public function get_login_state($user_id){
$this->db->select('loggedin_date, loggedout_date');
$this->db->where('user_id = '.$user_id);
$this->db->where('user_session = "'.$this->session->userdata('user_session').'"');
$select = $this->db->get('clock_in_out');
//die($this->db->last_query());
if($select){
return $select->row();
} else {
return false;
}
}
public function get_break_state($user_id, $session){
$this->db->select('in_date, out_date');
$this->db->where('user_id = '.$user_id);
$this->db->where('session = "'.$session.'"');
$this->db->order_by('in_date DESC');
$select = $this->db->get('breaks');
//die($this->db->last_query());
if($select){
return $select->row();
} else {
return false;
}
}
这是我必须在视图中操作对象的内容:
if(isset($resultWork)){
if($resultWork->loggedin_date){
$startWorkBtnState = 'disabled';
}
if($resultWork->loggedout_date){
$endWorkBtnState = 'disabled';
}
}
if(isset($resultBreak)){
if($resultBreak->in_date){
$startBreakBtnState = 'disabled';
}
if($resultBreak->out_date){
$endBreakBtnState = 'disabled';
}
}
好的,我想我已经找到你了..
如果您的第一个控制器案例 if($resultOne){}
计算结果为真,那么您正在加载视图而没有将 $this->login_state['resultBreak']
设置为任何内容。您需要更聪明地处理 if 并改进您的逻辑。为了快速修复,首先初始化您的变量以避免通知
$this->login_state['resultWork'] = null;
$this->login_state['resultBreak'] = null;
我的想法是检查数据库中的值是否取决于字段是否为 null 取决于按钮的状态,get_login_state() 可以正常工作并获得所需的结果,但是 get_break_state () 没有。
In my controller in the if($resultTwo){} The code in here never executes but resultTwo collects the result and isn;t null so I don;t understand why.
Here is my controller:
$resultOne = $this->dashboard_model->get_login_state($user_id);
//die(print_r($resultOne));
$resultTwo = $this->dashboard_model->get_break_state($user_id, $this->session->userdata('user_session'));
//die(print_r($resultTwo));
$this->login_state = array();
if($resultOne){
$this->login_state['resultWork'] = $resultOne;
$this->template->content = View::factory('dashboard', $this->login_state);
} else {
return $this->normal['status'] = false;
}
//die(print_r($resultTwo));
if($resultTwo) {
//die('two');
$this->login_state['resultBreak'] = $resultTwo;
$this->template->content = View::factory('dashboard', $this->login_state);
} else {
return $this->normal['status'] = false;
}
这是我的模型:
public function get_login_state($user_id){
$this->db->select('loggedin_date, loggedout_date');
$this->db->where('user_id = '.$user_id);
$this->db->where('user_session = "'.$this->session->userdata('user_session').'"');
$select = $this->db->get('clock_in_out');
//die($this->db->last_query());
if($select){
return $select->row();
} else {
return false;
}
}
public function get_break_state($user_id, $session){
$this->db->select('in_date, out_date');
$this->db->where('user_id = '.$user_id);
$this->db->where('session = "'.$session.'"');
$this->db->order_by('in_date DESC');
$select = $this->db->get('breaks');
//die($this->db->last_query());
if($select){
return $select->row();
} else {
return false;
}
}
这是我必须在视图中操作对象的内容:
if(isset($resultWork)){
if($resultWork->loggedin_date){
$startWorkBtnState = 'disabled';
}
if($resultWork->loggedout_date){
$endWorkBtnState = 'disabled';
}
}
if(isset($resultBreak)){
if($resultBreak->in_date){
$startBreakBtnState = 'disabled';
}
if($resultBreak->out_date){
$endBreakBtnState = 'disabled';
}
}
好的,我想我已经找到你了..
如果您的第一个控制器案例 if($resultOne){}
计算结果为真,那么您正在加载视图而没有将 $this->login_state['resultBreak']
设置为任何内容。您需要更聪明地处理 if 并改进您的逻辑。为了快速修复,首先初始化您的变量以避免通知
$this->login_state['resultWork'] = null;
$this->login_state['resultBreak'] = null;