Php artisan make:auth command is not defined
Asked Answered
T

12

143

I'm trying to run this command in Laravel 5.2 but it's not working:

php artisan make:auth 

And prompts with these statements:

[InvalidArgumentException]
  Command "make:auth" is not defined
  Did you mean one of these?  


      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
Trieste answered 31/12, 2015 at 11:16 Comment(6)
their is nothing like use Illuminate\Contracts\Auth\Authenticator; in AuthenticateUser.php.as i mentioned i'm using laravel 5.2Trieste
Have you tried to composer update?Felicafelicdad
yes just last night..Trieste
@YauheniPrakopchyk do you use laravel 5.2?Trieste
There must be any problem with your exist code, You must try with new fresh installation. laravel.com/docs/master/installation . Probably your would understand the exact problem.Strapper
Yes, I do use laravel 5.2. Tried fresh installation yesterday. Everything worked.Felicafelicdad
K
218

For Laravel >=6

composer require laravel/ui
php artisan ui vue --auth
php artisan migrate

Reference : Laravel Documentation for authentication

it looks you are not using Laravel 5.2, these are the available make commands in L5.2 and you are missing more than just the make:auth command

    make:auth           Scaffold basic login and registration views and routes
    make:console        Create a new Artisan command
    make:controller     Create a new controller class
    make:entity         Create a new entity.
    make:event          Create a new event class
    make:job            Create a new job class
    make:listener       Create a new event listener class
    make:middleware     Create a new middleware class
    make:migration      Create a new migration file
    make:model          Create a new Eloquent model class
    make:policy         Create a new policy class
    make:presenter      Create a new presenter.
    make:provider       Create a new service provider class
    make:repository     Create a new repository.
    make:request        Create a new form request class
    make:seeder         Create a new seeder class
    make:test           Create a new test class
    make:transformer    Create a new transformer.

Be sure you have this dependency in your composer.json file

    "laravel/framework": "5.2.*",

Then run

    composer update
Keramics answered 31/12, 2015 at 12:55 Comment(6)
my mistake.sorry.I didn't checked my composr.json file.Trieste
This answer needs to be updated - Laravel is at 7.0 at the moment.Shorn
composer require laravel/ui doesn't work with meThunderpeal
Worked with Laravel 8.5. Thank you.Timisoara
Tested on the Laravel 9.12.2 and works on it as well. Thanks!Immaculate
But I don't to that without npm, how can I do that?Bibliofilm
H
103

Update for Laravel 8

laravel/ui still works but is considered legacy. Consider using Laravel Breeze or Laravel Jetstream.

Update for Laravel 6

Now that Laravel 6 is released you need to install laravel/ui.

composer require laravel/ui --dev
php artisan ui vue --auth

You can change vue with react or bootstrap if you use React or Bootstrap in your project (see Using React).

And then you need to perform the migrations and compile the frontend

php artisan migrate
npm install && npm run dev

Source : Laravel Documentation for authentication

Want to get started fast? Install the laravel/ui Composer package and run php artisan ui vue --auth in a fresh Laravel application. After migrating your database, navigate your browser to http://your-app.test/register or any other URL that is assigned to your application. These commands will take care of scaffolding your entire authentication system!

Note: That's only if you want to use scaffolding, you can use the default User model and the Eloquent authentication driver.

Herrin answered 4/9, 2019 at 14:44 Comment(7)
Thanks. What if I don't want Vue, just the auth scaffolding?Wrought
@AmirAsyraf I would recommend to write it yourself, the auth middleware is native, you just need to write the routes then.Herrin
This should be the accepted answer. After adding laravel/ui, the ui:auth command is available.Peters
Thanks. What if I don't want Vue, just the auth scaffolding? use php artisan ui:auth check answer https://mcmap.net/q/158901/-php-artisan-make-auth-command-is-not-definedDetrain
@Nino You have missed bootstrap parameter. like php artisan ui bootstrap --authProvince
@MahmoodJenami Thanks, you're right. I took the opportunity to mention this package is legacy with Laravel 8.Herrin
@MahmoodJenami Your suggested solution php artisan ui bootstrap --auth not working, getting error Command "ui" is not defined.Fin
S
81

In Laravel 6.0 make:auth no longer exists. Read more here

A- Shorthand:

Update Nov 18th: Taylor just released Laravel Installer 2.3.0 added a new "--auth" flag to create a new project with the authentication scaffolding installed!

To update laravel installer read here

It means we can do:

laravel new project --auth

cd project

php artisan migrate

npm install
npm run dev

Which is a shorthand of commands in the Section B. Also read more here


B - Details:

Follow these three steps

Step 1 - First do this:

laravel new project

cd project

composer require laravel/ui --dev

Note: Laravel UI Composer package is a new first-party package that extracts the UI portion of a Laravel project ( frontend scaffolding typically provided with previous releases of Laravel ) into a separate laravel/ui package. The separate package enables the Laravel team to update, develop and version UI scaffolding package separately from the primary framework and the main Laravel codebase.

Step 2 - Then do this:

php artisan ui bootstrap --auth
php artisan migrate

or

php artisan ui vue --auth
php artisan migrate

instead of

php artisan make:auth  ( which works for Laravel 5.8 and older versions )

More Options here

php artisan ui:auth

The above command will generate only the auth routes, a HomeController, auth views, and a app.blade.php layout file.

You can also generate the views only with:

php artisan ui:auth --views

The console command will prompt you to confirm overwriting auth files if you've already run the command before.

// Generate basic scaffolding...
php artisan ui vue
php artisan ui react

and also:

// Generate login / registration scaffolding...
php artisan ui vue --auth
php artisan ui react --auth

To see differences read this article

Step 3 - Then you need to do:

npm install
npm run dev
Sinless answered 9/9, 2019 at 12:13 Comment(1)
You're largely just duplicating @Nino's answer from a week ago.Arwood
D
15

In the Laravel 6 application the make:auth command no longer exists.

Laravel UI is a new first-party package that extracts the UI portion of a Laravel project into a separate laravel/ui package. The separate package enables the Laravel team to iterate on the UI package separately from the main Laravel codebase.

You can install the laravel/ui package via composer:

composer require laravel/ui

The ui:auth Command

Besides the new ui command, the laravel/ui package comes with another command for generating the auth scaffolding:

php artisan ui:auth

If you run the ui:auth command, it will generate the auth routes, a HomeController, auth views, and a app.blade.php layout file.


If you want to generate the views alone, type the following command instead:

php artisan ui:auth --views

If you want to generate the auth scaffolding at the same time:

php artisan ui vue --auth
php artisan ui react --auth

php artisan ui vue --auth command will create all of the views you need for authentication and place them in the resources/views/auth directory

The ui command will also create a resources/views/layouts directory containing a base layout for your application. All of these views use the Bootstrap CSS framework, but you are free to customize them however you wish.

More detail follow. laravel-news & documentation

Simply you've to follow this two-step.

composer require laravel/ui
php artisan ui:auth
Detrain answered 18/10, 2019 at 10:53 Comment(0)
V
7

In short and precise, all you need to do is

composer require laravel/ui --dev

php artisan ui vue --auth and then the migrate php artisan migrate.

Just for an overview of Laravel Authentication

Laravel Authentication facilities comes with Guard and Providers, Guards define how users are authenticated for each request whereas Providers define how users are retrieved from you persistent storage.

Database Consideration - By default Laravel includes an App\User Eloquent Model in your app directory.

Auth Namespace - App\Http\Controllers\Auth

Controllers - RegisterController, LoginController, ForgotPasswordController and ResetPasswordController, all names are meaningful and easy to understand!

Routing - Laravel/ui package provides a quick way to scaffold all the routes and views you need for authentication using a few simple commands (as mentioned in the start instead of make:auth).

You can disable any newly created controller, e. g. RegisterController and modify your route declaration like, Auth::routes(['register' => false]); For further detail please look into the Laravel Documentation.

Vaniavanilla answered 25/9, 2019 at 11:1 Comment(0)
F
4

This two commands work for me in my project

composer require laravel/ui --dev

Then

php artisan ui:auth
Ferry answered 24/10, 2020 at 16:38 Comment(0)
H
3

Checkout your laravel/framework version on your composer.json file,

If it's either "^6.0" or higher than "^5.9",

you have to use php artisan ui:auth instead of php artisan make:auth.

Before using that you have to install new dependencies by calling composer require laravel/ui --dev in the current directory.

Holds answered 28/10, 2020 at 5:39 Comment(0)
I
3

If you using >5 version of laravel then you will use.

composer require laravel/ui --dev **or** composer require laravel/ui

And then

php artisan ui:auth
Imitation answered 28/11, 2020 at 9:52 Comment(0)
L
3

Please run the billow commands step by step in the case of laravel 9

composer require laravel/ui
php artisan ui bootstrap --auth
npm install
npm install resolve-url-loader@^5.0.0 --save-dev --legacy-peer-deps
npm run dev

Hope it will be helpful.

Lorylose answered 28/2, 2022 at 12:11 Comment(0)
D
0

You can use laravel/breeze

composer require laravel/breeze --dev

then

php artisan breeze:install

then

npm install

you can check the documentation

Dutton answered 12/10, 2021 at 20:11 Comment(0)
E
0

Following CLI commands are commonly used to setup Laravel 6.x, 7x , 8.x versions:

composer create-project --prefer-dist laravel/laravel blade-example-app

cd blade-example-app

composer require laravel/ui

php artisan ui bootstrap --auth

npm install && npm run dev

php artisan migrate

php artisan serve
Estevan answered 6/12, 2021 at 15:17 Comment(2)
koustav please add supported Laravel version in your answer. Thanks.Fin
@Fin Laravel 6.x, 7x , 8.xEstevan
C
0

In Laravel 9 I have followed the following steps and resloved this issue...

Make sure to create the project first and go to the project directory...

To get the UI and adding bootsrtap,

composer require laravel/ui

php artisan ui bootstrap --auth

Installl npm,

npm install

Run the npm,

npm run dev

Then migrate the tables,

php artisan migrate

Then Run the project, [Make sure to run the xamp and configure the Database]

php artisan serve
Closefitting answered 22/12, 2022 at 1:57 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.