dongou1970 2014-02-06 02: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-06 03: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条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器