【问题标题】:Laravel Routing and ComponentsLaravel 路由和组件
【发布时间】:2019-02-11 11:22:48
【问题描述】:

您好,我是 Laravel 和 ReactJS 的新手,我有一个关于路由的问题。 为什么我总是被重定向到 localhost:8000/login。

这是我在 web.php 中的路线:

还有这里指的是哪里?

Route::get('/', 'HomeController@index')->name('home');

我的 Homecontroller 包含以下代码:

public function __construct() { 
    $this->middleware('auth'); 
} 

public function index() { 
    return view('home'); 
}

【问题讨论】:

  • 当你去 localhost:8000/ 你被重定向到 /login?在 index 方法下的 HomeController 中有什么。我们需要更多代码来帮助您。
  • 对不起,我不知道方法索引下的这个 HomeController。我只使用 php artisan make:auth 添加身份验证
  • 导航到 app/Http/Controllers,打开 HomeController 并用其中的内容更新您的问题。
  • 请发布您的app/Http/Controllers/HomeController.php 文件的内容。也可能值得发布您的 app/Http/Kernel.php 文件。
  • public function __construct() { $this->middleware('auth'); } public function index() { return view('home'); }

标签: php laravel laravel-routing


【解决方案1】:

来自 Laravel 文档。

重定向未经身份验证的用户
当 auth 中间件检测到未经授权的用户时,它将返回 JSON 401 响应,或者,如果请求不是 AJAX 请求,则将用户重定向到名为登录的路由。

您可以通过在 app/Exceptions/Handler.php 文件中定义未经身份验证的函数来修改此行为:

也就是说,您可能已经发出了一个命令php artisan make:auth,它为身份验证创建了默认视图和路由。 您可以使用php artisan route:list列出所有路线

由于您未通过身份验证(登录),您将被重定向到登录。

【讨论】:

    【解决方案2】:

    控制器的构造函数包含一个中间件,特别是 auth 中间件。 Laravel 使用middleware 来处理请求。

    auth 中间件确保查看请求页面的每个人都已登录。 您可能正在以未经身份验证的用户身份查看该页面。

    您可以尝试删除中间件(删除__construct 函数)或创建帐户并登录。

    有关路由的信息也可以在in the docs找到。

    但简而言之,您的路由文件包含您的应用程序的所有有效 url Route::get('/', 'HomeController@index')->name('home'); 意味着,如果有人遇到 url example.com/ 转到 HomeController 并查看函数 index 以了解该怎么做。

    在您的情况下,它返回视图home

    【讨论】:

      猜你喜欢
      • 2022-01-11
      • 2016-12-09
      • 1970-01-01
      • 2020-12-09
      • 2015-10-26
      • 2016-03-05
      • 2013-06-07
      • 2019-07-10
      • 1970-01-01
      相关资源
      最近更新 更多