Warum ist der Befehl „make:auth' in Laravel 5.2 nicht definiert und wie kann ich die Authentifizierung manuell einrichten?

Linda Hamilton
Freigeben: 2024-10-25 08:03:29
Original
881 Leute haben es durchsucht

Why is the

Laravel-Authentifizierung: Fehlerbehebung „make:auth-Befehl nicht definiert“-Fehler

Beim Versuch, den make:auth-Befehl in Laravel 5.2 auszuführen, Möglicherweise erhalten Sie eine Fehlermeldung, die besagt, dass der Befehl nicht definiert ist. Dieses Problem kann aus verschiedenen Gründen auftreten, die wir im Detail untersuchen werden.

Für Laravel-Versionen 5.2 und älter ist der Befehl make:auth nicht verfügbar. Die folgenden Befehle werden in Laravel 5.2 unterstützt:

  • make:auth
  • make:console
  • make:controller
  • make:entity
  • make:event
  • make:job
  • make:listener
  • make:middleware
  • make:migration
  • make :model
  • make:policy
  • make:presenter
  • make:provider
  • make:repository
  • make:request
  • make:seeder
  • make:test
  • make:transformer

Wenn Sie Laravel 5.2 verwenden, können Sie die Authentifizierungsansichten und Routen manuell erstellen Befolgen Sie diese Schritte:

  1. Erstellen Sie die Datei „routes.php“ im Routenverzeichnis.
  2. Fügen Sie den folgenden Code zur Datei „routes.php“ hinzu:

    <code class="php">// Authentication Routes...
    Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
    Route::post('login', 'Auth\LoginController@login')->name('login.post');
    Route::post('logout', 'Auth\LoginController@logout')->name('logout');
    
    // Registration Routes...
    Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
    Route::post('register', 'Auth\RegisterController@register')->name('register.post');
    
    // Password Reset Routes...
    Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
    Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
    Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
    Route::post('password/reset', 'Auth\ResetPasswordController@reset')->name('password.update');</code>
    Nach dem Login kopieren
  3. Erstellen Sie die Datei LoginController.php im Verzeichnis app/Http/Controllers/Auth.
  4. Fügen Sie den folgenden Code zur Datei LoginController.php hinzu:

    <code class="php">namespace App\Http\Controllers\Auth;
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Auth;
    use Illuminate\Support\Facades\Route;
    
    class LoginController extends Controller
    {
        public function showLoginForm()
        {
            return view('auth.login');
        }
    
        public function login(Request $request)
        {
            $credentials = $request->only('email', 'password');
    
            if (Auth::attempt($credentials)) {
                // The user was authenticated
                return redirect()->intended(route('home'));
            }
    
            // The user could not be authenticated
            return redirect()->back()->withErrors(['email' => 'The provided credentials do not match our records.']);
        }
    
        public function logout(Request $request)
        {
            Auth::logout();
    
            return redirect()->route('login');
        }
    }</code>
    Nach dem Login kopieren
  5. Erstellen Sie die Datei RegisterController.php im Verzeichnis app/Http/Controllers/Auth.
  6. Fügen Sie den folgenden Code zur Datei RegisterController.php hinzu:

    <code class="php">namespace App\Http\Controllers\Auth;
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Auth;
    use Illuminate\Support\Facades\Route;
    
    class RegisterController extends Controller
    {
        public function showRegistrationForm()
        {
            return view('auth.register');
        }
    
        public function register(Request $request)
        {
            $this->validate($request, [
                'name' => 'required|string|max:255',
                'email' => 'required|string|email|max:255|unique:users',
                'password' => 'required|string|min:6|confirmed',
            ]);
    
            // Create the user
            $user = User::create([
                'name' => $request->name,
                'email' => $request->email,
                'password' => bcrypt($request->password),
            ]);
    
            // Log the user in
            Auth::login($user);
    
            // Redirect the user to the home page
            return redirect()->route('home');
        }
    }</code>
    Nach dem Login kopieren
  7. Erstellen Sie die Datei ForgotPasswordController.php im Verzeichnis app/Http/Controllers/Auth.
  8. Fügen Sie den folgenden Code zur Datei ForgotPasswordController.php hinzu:

    <code class="php">namespace App\Http\Controllers\Auth;
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Password;
    
    class ForgotPasswordController extends Controller
    {
        public function showLinkRequestForm()
        {
            return view('auth.passwords.email');
        }
    
        public function sendResetLinkEmail(Request $request)
        {
            $this->validate($request, [
                'email' => 'required|string|email|max:255',
            ]);
    
            // We will send the reset link to this user. Once we have attempted
            // to send the link, we will examine the response then see the message we
            // need to show to the user. Finally, we'll send out a proper
            // response.
            $response = Password::sendResetLink(
                $request->only('email')
            );
    
            switch ($response) {
                case Password::RESET_LINK_SENT:
                    return back()->with('status', __($response));
    
                case Password::INVALID_USER:
                    return back()->withErrors(['email' => __($response)]);
            }
        }
    }</code>
    Nach dem Login kopieren
  9. Erstellen Sie die Datei ResetPasswordController.php im Verzeichnis app/Http/Controllers/Auth.
  10. Fügen Sie den folgenden Code zur Datei ResetPasswordController.php hinzu:

    <code class="php">namespace App\Http\Controllers\Auth;
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Hash;
    use Illuminate\Support\Facades\Password;
    use Illuminate\Validation\ValidationException;
    
    class ResetPasswordController extends Controller
    {
        public function showResetForm(Request $request, $token = null)
        {
            return view('auth.passwords.reset')->with(
                ['token' => $token, 'email' => $request->email]
            );
        }
    
        public function reset(Request $request)
        {
            $request->validate([
                'token' => 'required',
                'email' => 'required|email',
                'password' => 'required|min:6|confirmed',
            ]);
    
            // Here we will attempt to reset the user's password. If it is successful we
            // will update the password on an existing user and return a response
            // indicating that the user's password has been reset.
            $response = Password::reset(
                $request->only('email', 'password', 'password_confirmation', 'token'),
                function ($user) use ($request) {
                    $user->forceFill([
                        'password' => Hash::make($request->password),
                        'remember_token' => Str::random(60),
                    ])->save();
    
                    // In case of large user base, it's recommended to use
                    // $user->setRememberToken(Str::random(60));
                    // $user->save();
                }
            );
    
            switch ($response) {
                case Password::PASSWORD_RESET:
                    return redirect()->route('login')->with('status', __($response));
    
                default:
                    throw ValidationException::withMessages([
                        'email' => [__($response)],
                    ]);
            }
        }
    }</code>
    Nach dem Login kopieren
  11. Öffnen Sie das Verzeichnis resources/views/auth und erstellen Sie Ihre Ansichten.

Nach Abschluss dieser Schritte sollte in Ihrer Laravel 5.2-Anwendung ein funktionierendes Authentifizierungssystem vorhanden sein.

Für Laravel >= 6

In Laravel 6 und höher wurde der Befehl make:auth durch den Befehl ui ersetzt. Um Authentifizierungsansichten und Routen mit diesem Befehl zu erstellen, führen Sie Folgendes aus:

composer require laravel/ui
php artisan ui vue --auth
php artisan migrate
Nach dem Login kopieren

Dieser Befehl installiert das Laravel-UI-Paket und erstellt die erforderlichen Authentifizierungsansichten, Routen und Migrationen.

Das obige ist der detaillierte Inhalt vonWarum ist der Befehl „make:auth' in Laravel 5.2 nicht definiert und wie kann ich die Authentifizierung manuell einrichten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage