2

我正在整理我的代码,删除表单处理程序函数之外的登录函数对我来说是有意义的。但是,当我在被调用函数中调用返回路由行时,它只是将此路由返回给父控制器,父控制器对此不做任何事情。我希望我的重定向在被调用的函数中执行。

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,我知道这是因为它不会进入仪表板页面。

4

7 回答 7

9

这是不可能的。当您说 时return Redirect::route('dashboard'),它将该函数调用返回给调用函数,而不是执行该函数。通过离开返回,它仍然会回到调用函数。

从那以后,我重新组织了我的逻辑。

于 2013-10-23T15:09:36.600 回答
3

您必须返回从方法调用返回的内容。第一个函数应该是这样的:

public static function loginFormHandler(){

    //some stuff is done

    return $this->doLogin();
}
于 2013-10-23T20:59:44.230 回答
0

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

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

希望这可以帮助

于 2013-10-29T15:48:33.153 回答
0

但是,您可以重定向到 URL:

Redirect::to('/dashboard');

那是一条路线:

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

祝你好运

于 2013-10-22T18:02:44.430 回答
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");
 }

}

于 2020-09-02T16:20:28.110 回答
0

你好,我现在正在构建一个 Lumen API,我需要相同的功能来从其他函数返回响应。

我希望这会有所帮助。

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

//FooTrait.php
protected function fooBar(){
   responseWithJsonError('Foo Error', 404)->send();
   exit;
}
于 2017-05-23T14:04:48.503 回答
-2

在文档中查看

您可以使用:

return redirect('home/dashboard');
return redirect()->route('profile', ['id' => 1]);
return redirect()->action('HomeController@index');
return redirect('dashboard')->with('status', 'Profile updated!');
...
于 2018-06-07T17:21:04.333 回答