Command "make:auth" is not defined.
Command "make:auth" is not defined.
我尝试在Laravel 5.2中运行这个命令,但它不起作用:
php artisan make:auth
并显示以下提示信息:
[InvalidArgumentException] 命令"make:auth"未定义 你是不是想使用以下其中之一? make:test make:request make:migration make:seeder make:middleware make:controller make:provider make:policy make:event make:console make:job make:listener make:model make:command
在Laravel 6.0中,make:auth命令已经被移除。如果想要创建带有身份验证脚手架的新项目,可以使用laravel new project --auth命令。下面是具体的解决方法:
1. 首先,创建一个新的项目并进入项目目录:
laravel new project cd project
2. 接下来,使用composer安装laravel/ui包:
composer require laravel/ui --dev
注意:laravel/ui包是一个第一方包,将Laravel项目的UI部分(通常在以前的Laravel版本中提供的前端脚手架)提取到一个单独的laravel/ui包中。这个单独的包使得Laravel团队能够单独更新、开发和版本管理UI脚手架,而不影响主要的框架和主要的Laravel代码库。
3. 然后,根据需要选择使用bootstrap或者vue作为前端框架,并生成身份验证脚手架:
php artisan ui bootstrap --auth php artisan migrate
或者
php artisan ui vue --auth php artisan migrate
相比于在Laravel 5.8及更早版本中使用的php artisan make:auth命令,这种方法更为简便。更多的选项可以查看链接:https://medium.com//laravel-auth-routes-email-verification-reset-password-authentication-registration-routes-fb82b3337150
4. 最后,安装前端依赖并编译前端资源:
npm install npm run dev
除了上述方法外,还可以使用更多的命令来生成不同的脚手架,如仅生成认证路由、生成视图等。具体命令如下:
php artisan ui:auth php artisan ui:auth --views php artisan ui vue php artisan ui react php artisan ui vue --auth php artisan ui react --auth
更多详细信息可以参考链接:https://medium.com//laravel-changes-in-php-artisan-ui-auth-php-artisan-make-auth-82fdb8893726
总结起来,从Laravel 6.0开始,make:auth命令被移除,取而代之的是使用laravel/ui包来生成身份验证脚手架。通过laravel new project --auth命令可以快速创建带有身份验证功能的新项目,并使用php artisan ui命令选择前端框架和生成相应的脚手架文件。最后,通过npm install和npm run dev命令安装并编译前端资源。
问题原因:在Laravel 8中,命令"make:auth"已被弃用,因此无法使用"php artisan make:auth"命令生成身份验证系统。
解决方法:根据Laravel 8的更新,可以考虑使用Laravel Breeze或Laravel Jetstream来替代"laravel/ui"包。具体步骤如下:
1. 使用Composer安装Laravel Breeze或Laravel Jetstream:
- Laravel Breeze:composer require laravel/breeze --dev
- Laravel Jetstream:composer require laravel/jetstream
2. 在终端中运行以下命令以生成身份验证系统:
- Laravel Breeze:php artisan breeze:install
- Laravel Jetstream:php artisan jetstream:install inertia
这样就可以在Laravel 8中生成身份验证系统,而不再使用"make:auth"命令。