如何重定向到被调用函数laravel中的路由

时间:2013-10-22 17:55:18

标签: php laravel laravel-4

我正在整理我的代码,我有理由删除我的formhandler函数之外的登录函数。但是,当我在被调用函数中调用返回路由行时,它只是将此路由返回给父控制器,而父控制器对它没有任何作用。我希望我的重定向在被调用的函数中执行。

public static function loginFormHandler(){

 //some stuff is done

$this->doLogin();
}

public static function doLogin(){

if (\Auth::attempt($this->credentials, $this->remember)) {
         return \Redirect::route("dashboard");
    }

}

它没有重定向,而是回到loginFormHandler,我知道这是因为它不会进入仪表板页面。

7 个答案:

答案 0 :(得分:3)

这是不可能的。当你说return Redirect::route('dashboard')时,它返回该函数调用调用函数,而不是执行函数。通过退出返回,无论如何它仍然会回到调用函数。

我已经重组了我的逻辑。

答案 1 :(得分:0)

但是,您可以重定向到网址:

Redirect::to('/dashboard');

这是一条路线:

Route::get('/dashboard', 'DashboardController@index');

古德勒克

答案 2 :(得分:0)

您必须返回方法调用返回的内容。第一个函数看起来像这样:

public static function loginFormHandler(){

    //some stuff is done

    return $this->doLogin();
}

答案 3 :(得分:0)

我喜欢将我的重定向固定在控制器上,以便在需要时可以更改SEO策略。要实现这一点非常简单:

return Redirect::action('SomeController@someFunction');

希望这有帮助

答案 4 :(得分:0)

您好我正在构建流明API,我需要相同的功能来返回其他功能的响应。

我希望这可以提供帮助。

//helpers.php
function responseWithJsonErrorsArray($text, $code)
    return response('error' => $text, $code);

//FooTrait.php
protected function fooBar(){
   responseWithJsonError('Foo Error', 404)->send();
   exit;
}

答案 5 :(得分:0)

试试这个:

die(redirect('/login'));

答案 6 :(得分:0)

您可以简单地返回函数中返回的内容,例如:

public static function loginFormHandler(){

    //some stuff is done

    return $this->doLogin();
}

 public static function doLogin(){

 if (\Auth::attempt($this->credentials, $this->remember)) {
     return \Redirect::route("dashboard");
 }

}