dongou1970 2014-02-05 18:50
浏览 73
已采纳

Laravel - 从自定义类重定向

How can I redirect application to specific url from my custom class?

Let's say I have my custom class API in Laravel Application:

class API {

    private function generic_request( $uri ) 
    {
       $response = $this->getResponse($uri);
       if($response == 'bad_token') 
       {
          //redirect to login screen with message
       }
    }

In my controller function:

public function add_employee() {
    $data['employee_positions'] = API::generic_request('/employees/position_list');
    $this->layout->content = View::make('employees.add_employee')->with($data);
}

I've tried Events, but you can't redirect from Event listener. Right now I'm using Exceptions but I feel like it's wrong approach. For example:

App::abort(401);

and then in global.php :

App::error(function(Exception $exception, $code)
{
    /*CORE API Exceptions*/

    if($code == 401) 
    {
        Session::put('message','System Action: Expired Token');
        return Redirect::to('login');
    }
}

展开全部

  • 写回答

2条回答 默认 最新

  • dongpochi9741 2014-02-05 19:07
    关注

    You just have to create a response and return it all the way back to Laravel:

    <?php
    
    class API {
    
        public function doWhatever($uri)
        {
            return $this->generic_request($uri);
        }
    
        private function generic_request( $uri ) 
        {
           $response = $this->getResponse($uri);
    
           if($response == 'bad_token') 
           {
              return Redirect::to('login')->with('message', 'your message');
           }
    
        }
    
    }
    
    Route::get('test', function()
    {
        return with(new API)->doWhatever('yourURI');
    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部