到目前为止,我正试图收紧我的代码并停止重复自己。一直在挣扎,哈哈
在我的视图和控制器中,我正在检查用户是否已登录。这很好,但我只想检查用户是否在视图中,然后显示正确的内容。
最初,在我的控制器中,我查看用户是否在那里,然后如果是,我使用不同的变量加载相同的视图。好像有点重复。
public function recentStories(){
//This pulls back all the recent stories
if (empty($this->user)) {
$this->load->view('header_view', array(
'title' => 'Recent Stories',
));
$this->load->view('storyList_view', array(
'query' => $this->data_model->pullAllStories(),
));
$this->load->view('footer_view');
}else{
$this->load->view('header_view',array(
'user' => $this->users_model->getUser($this->user->user_id),
'title' => 'Recent Stories',
));
$this->load->view('storyList_view', array(
'query' => $this->data_model->pullAllStories(),
'admin' => $this->admin_model->pulladminRecent(),
'user' => $this->users_model->getUser($this->user->user_id),
));
$this->load->view('footer_view');
}
}
最终,我想把那个块减少到这样的东西。
public function recentStories(){
//This pulls back all the recent stories
$this->load->view('header_view',array(
'title' => 'Recent Stories',
));
$this->load->view('storyList_view', array(
'query' => $this->data_model->pullAllStories(),
'admin' => $this->admin_model->pulladminRecent(),
'user' => $this->users_model->getUser($this->user->user_id),
));
$this->load->view('footer_view');
}
但是当我减少该代码并取出检查用户的部分时,我得到一个错误,说我正在尝试获取非对象的属性。显然,这是在谈论用户。
为了尝试解决这个问题,我两种都试过了
<?if(isset($user)){
user header code in here
}else{
non-user header code in here
}?>
和
<?if(!empty($user)){
user header code in here
}else{
non-user header code in here
}?>
两者都返回了“试图获得非对象的财产”任何想法都会受到欢迎。我真的不喜欢有多余的代码。