我正面临一种情况,我需要调用一个函数来检查一些状态。
$lastupdate=Request::factory('user/getlastupdate/'.$userid.'')->execute();
我的getlastupdate函数如下所示:
public function action_getlastupdate($userid){
$status=array();
try{
$updatestatus= ORM::factory('updates')
->where('id', '=', $userid)
->where('deleted', '=',0)
->find_all();
//check if result returned values
$resultcount=count($updatestatus);
//if result has data
if($resultcount>0){
foreach($updatestatus as $status)
{
$stat="found";
$result= 'Profile Last Updated on'.$updatestatus->lastupdate;
}
}//end if result has data
//if record returned no values
else{
$stat="missing";
$result= 'Profile Data Missing';
}//end if resultcount>0
}//end try
catch(ORM_Validation_Exception $e)
{
$stat="error";
$result="Profile Update Search Error ".$e->errors('updates');
}///end catch
$status['result']=$result;
$status['stat']=$stat;
$this->response->body(View::factory('pages/updatestatus', $status));
}//end function
这有效,但我不想渲染视图。我想返回数组状态并从我的控制器中调用此方法使用它。我该如何实现呢?如果我从同一个控制器调用来自不同控制器的vis调用,代码会改变吗?
我正在使用kostache模板,所以在将最终输出渲染到我的视图之前,我需要使用状态[values]。
答案 0 :(得分:0)
您可以为子查询发送一个额外参数,该参数将指示是否自动呈现视图。
$lastupdate=Request::factory('user/getlastupdate/'.$userid.'/off')->execute();
并在你的行动getlastupdate中检查参数
action_getlastupdate($userid, $renderView = '')
{
if( $renderView === 'off' )
{
$this->auto_render = FALSE;
}
[...]
}