Baru-baru ini saya mulai menggunakan laravel 5.3 untuk menulis blog, tetapi saya memiliki pertanyaan setelah menjalankan php artisan make:auth
ketika saya menjalankan ini, itu akan menghasilkan rute di saya web.php
ini kode di dalamnya:
Auth::routes();
Route::get('/home', 'HomeController@index');
Lalu saya jalankan php artisan route:list
, saya menemukan banyak tindakan, seperti LoginController @ login ...
Tapi saya tidak menemukan tindakan ini dalam diri saya App\Http\Controllers\Auth
, di mana ini?
Dan juga untuk apa Auth::routes()
kepanjangannya, saya tidak dapat menemukan rute tentang Auth.
Saya butuh bantuan seseorang, terima kasih untuk menjawab pertanyaan saya
php
laravel
laravel-5
laravel-5.3
g1eny0ung.dll
sumber
sumber
Jawaban:
Auth::routes()
hanyalah kelas pembantu yang membantu Anda menghasilkan semua rute yang diperlukan untuk otentikasi pengguna. Anda dapat menelusuri kodenya di sini https://github.com/laravel/framework/blob/5.3/src/Illuminate/Routing/Router.php sebagai gantinya.Berikut rutenya
sumber
Auth
adalah fasad dan akan ditentukan diconfig/app.php
Anda akan menemukan kelas yang bertindak sebagai penyedia di file konfigurasi tersebut.NotFoundHttpException in RouteCollection.php line 161:
dan api lain berjalan dengan baik.$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
tidak dapat menjalankanAuth
apiBerikut Laravel 5.7 , Laravel 5.8 , Laravel 6.0 , dan Laravel 7.0 (perhatikan perubahan kecil BC di 6.0 ke rute verifikasi email).
Anda dapat memverifikasi rute ini di sini:
sumber
'email/verify/{id}/{hash}'
. Jika tidak, hash tidak dapat diverifikasi dan kesalahan 403 akan muncul yang mengatakan "Tindakan ini tidak sah".Auth rute untuk Laravel 5.3 sebagai gantinya Auth :: routes (). Saya harap ini membantu ...
Jadi jika Anda mengubah beberapa nama dari rute ini, ingatlah untuk juga mengubah tindakan dari posting dalam tampilan!
sumber
Untuk Laravel 5.5.x
sumber
fungsi panggilan urutan:
Rutenya seperti ini:
sumber
Auth::routes()
- fasad Auth - mengambilRouter
contoh objek dari wadah Laravel dan memanggil metode yang sudah ada sebelumnyaauth
.auth
pada gilirannya menentukan rute dan pengontrolnya masing-masing yang dihasilkan olehphp artisan make:auth
. Ini dia.Ini berhasil untuk saya dengan Laravel 5.6 .
Di dalam file
web.php
, ganti saja:Oleh:
Dan hapus tautan Register di dua file di bawah ini:
sumber
Jika Anda mencari rute yang sama untuk versi laravel 7, Anda akan menemukannya di sini
Vendor/laravel/ui/src/AuthRouteMethods.php
sumber
Saya terkejut tidak ada yang menyebutkan perintah tersebut
php artisan route:list
, yang memberikan daftar semua rute aplikasi terdaftar (termasukAuth::routes()
danPassport::routes()
jika terdaftar)sumber
kelas loginuser menggunakan sifat yang disebut
AuthenticatesUsers
jika Anda membuka sifat itu, Anda akan melihat fungsinya (ini berlaku untuk pengontrol lain)
Illuminate\Foundation\Auth\AuthenticatesUsers;
berikut adalah kode sifat https://github.com/laravel/framework/blob/5.1/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php
maaf untuk format yang buruk, saya menggunakan ponsel saya
juga
Auth::routes()
hanya memanggil fungsi yang mengembalikan rute auth itu (saya pikir)sumber
vendor\laravel\src\Illuminate\Foundation\Auth\ResetsPasswords
, jika Anda ingin mengubah ini atau sesuatu, jangan ubah ini, cukup tambahkan metode yang sama ke pengontrol Anda dan kemudian ubah,