MVC CodeIgniter,无法将数组传递给视图


MVC CodeIgniter, trouble getting array to pass to view

我的想法是,我正在检查数据库中的值,这取决于字段是否为空取决于按钮的状态,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){}评估为true,那么您加载视图时没有将$this->login_state['resultBreak']设置为任何值。你需要更聪明地处理你的if,并提高你的逻辑。为了快速修复,请首先初始化您的变量,以避免注意

$this->login_state['resultWork'] = null;
$this->login_state['resultBreak'] = null;