如何在 Laravel 中进行简单的重定向?

Posted

技术标签:

【中文标题】如何在 Laravel 中进行简单的重定向?【英文标题】:How to do a simple redirect in Laravel? 【发布时间】:2016-05-23 17:33:26 【问题描述】:

我在 Laravel 中有一个函数。最后我想重定向到另一个函数。我如何在 Laravel 中做到这一点?

我尝试了类似的方法:

return redirect()->route('listofclubs');

它不起作用。 “listofclubs”的路线是:

Route::get("listofclubs","Clubs@listofclubs");

【问题讨论】:

在您的情况下,您需要命名路线 我想你可能指的是return redirect()->action('Clubs@listofclubs'); 【参考方案1】:

如果要使用路由路径需要使用to方法:

return redirect()->to('listofclubs');

如果您想使用route 方法,您需要传递一个路由名称,这意味着您需要在路由定义中添加一个名称。因此,如果将您的路线修改为具有这样的名称:

// The `as` attribute defines the route name
Route::get('listofclubs', ['as' => 'listofclubs', 'uses' => 'Clubs@listofclubs']);

那么你可以使用:

return redirect()->route('listofclubs');

您可以在Laravel HTTP Routing Documentation 中阅读有关命名路由的更多信息,并在Redirector 类API Documentation 中阅读有关重定向的更多信息,您可以在其中查看可用方法以及每个方法接受的参数。

【讨论】:

您也可以使用以下行作为您的路线:Route::get("listofclubs","Clubs@listofclubs")->name('listofclubs'); 至少对我来说,它更容易记住语法。【参考方案2】:

只需命名您的路线:

Route::get('listofclubs',[
    'uses' => 'Clubs@listofclubs',
    'as'   => 'listofclubs'
]);

后来

return redirect()->route('listofclubs');

【讨论】:

【参考方案3】:

一种方法是遵循其他人提供的解决方案。另一种方法是,由于您打算直接调用该函数,因此您可以使用

return redirect()->action('Clubs@listofclubs');

然后在路由文件中

Route::get("listofclubs","Clubs@listofclubs");

Laravel 会自动重定向到 /listofclubs。

【讨论】:

以上是关于如何在 Laravel 中进行简单的重定向?的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 5.6.3 中更改登录的重定向 url

如何在移动设备的重定向页面上传递 PHP 会话值?

Laravel 4.2 应用程序在上传实时服务器后发生不必要的重定向

Laravel 4 Redirect :: back()不会转到上一页(刷新当前页面)

如何在黄瓜中跟踪来自javascript的重定向?

如何让 Azure OIDC 尊重我的重定向 URI?