📜  php artisan make:auth 命令“make:auth”未定义. - PHP (1)

📅  最后修改于: 2023-12-03 15:18:19.299000             🧑  作者: Mango

PHP问题:'php artisan make:auth 命令“make:auth”未定义

问题描述

当开发者尝试在Laravel应用程序中运行 php artisan make:auth 命令时,会遇到此错误消息:“make:auth”未定义。

问题原因

最新版本的Laravel(v6及更高版本)默认不再支持 php artisan make:auth 命令。这是因为在Laravel v6及更高版本中,Laravel已经移除了废弃的控制器和路由。

解决方法

要启用身份验证功能,开发者可以使用以下两种方法中的任何一种:

方法1:使用laravel/ui工具包

可以使用composer require laravel/ui命令安装 laravel/ui 工具包,该工具包提供了构建身份验证的命令。

以下是如何在Laravel应用程序中使用 laravel/ui 工具包来构建身份验证的步骤:

  1. composer require laravel/ui
  2. php artisan ui vue --auth
  3. npm install && npm run dev

第1步将 laravel/ui 包安装到您的应用程序中。

第2步会发布身份验证视图和路由到您的应用程序。此命令还将在您的应用程序中安装所有必需的JavaScript依赖项。

第3步将编译和打包所有前端资源。

方法2:手动创建身份验证

如果您不想使用laravel/ui工具包,那么您可以手动创建身份验证。以下是手动创建身份验证的步骤:

  1. 创建用户认证表。
php artisan make:migration create_users_table --create=users
php artisan migrate

2.创建密码重置表

php artisan make:migration create_password_resets_table --create=password_resets
php artisan migrate
  1. 创建一个用户模型
php artisan make:model User
  1. 将Auth trait添加到User模型中
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    // user model definition
    use \Illuminate\Auth\Authenticatable;
}
  1. app/Http/Controllers 中创建Auth控制器
php artisan make:controller AuthController --resource --model=User
  1. routes/web.php 中添加身份验证路由
Route::get('login', 'AuthController@showLoginForm')->name('login');
Route::post('login', 'AuthController@login');
Route::post('logout', 'AuthController@logout');

这将创建访问登录和注销用户的路由。

  1. resources/views 中创建登录和注册页模板

使用以下命令在 resources/views 文件夹下创建 login.blade.phpregister.blade.php 视图。

touch resources/views/login.blade.php
touch resources/views/register.blade.php

接下来,您需要根据您的应用程序需求,编辑这两个视图文件。

以上是手动创建身份验证的所有步骤。

结论

以上提供了两种方法来启用身份验证功能。使用 laravel/ui 工具包将更快、更方便地构建身份验证。如果您选择手动创建身份验证,那么您需要按照上述步骤进行操作,以设置您的应用程序。