2016-08-29 7 views
44

Недавно я начал использовать Laravel 5.3, чтобы написать в блоге, но у меня есть вопрос после запуска php artisan make:authLaravel 5.3 новые Auth :: маршрутов()

, когда я запускаю это, он будет генерировать маршруты в моих web.php

это код в нем:

Auth::routes(); 

Route::get('/home', '[email protected]'); 

Тогда я бегу php artisan route:list, я нахожу много действий, как LoginController @ логин ...

Но я не нашел эти действия в моем App\Http\Controllers\Auth, где они?

А также что такое Auth::routes() подставка для, Невозможно найти маршруты по Auth.

мне нужно кому-то помочь, спасибо вам ответить на мой вопрос

ответ

84

Auth :: маршруты() это просто вспомогательный класс, который поможет вам сгенерировать все маршруты, необходимые для аутентификации пользователя. Вы можете просмотреть здесь код https://github.com/laravel/framework/blob/5.3/src/Illuminate/Routing/Router.php.

Вот маршруты

// Authentication Routes... 
$this->get('login', 'Auth\[email protected]')->name('login'); 
$this->post('login', 'Auth\[email protected]'); 
$this->post('logout', 'Auth\[email protected]')->name('logout'); 

// Registration Routes... 
$this->get('register', 'Auth\[email protected]')->name('register'); 
$this->post('register', 'Auth\[email protected]'); 

// Password Reset Routes... 
$this->get('password/reset', 'Auth\[email protected]'); 
$this->post('password/email', 'Auth\[email protected]'); 
$this->get('password/reset/{token}', 'Auth\[email protected]'); 
$this->post('password/reset', 'Auth\[email protected]'); 
+0

Спасибо! Я вижу файл ../Routing/Router.php, и теперь я знаю, как работают маршруты. Но где статические методы Auth route()? Я все еще не могу найти его, простите меня, что я начинающий новичок ... – g1eny0ung

+1

Метод Auth :: routes здесь https://github.com/laravel/framework/blob/5.3/src/Illuminate/Support/Facades/ Auth.php и его вызов функции Router в любом случае. Пожалуйста, отметьте это как ответ, если это вам помогло, спасибо. – Lee

+1

'Auth' - это * фасад * и будет определен в' config/app.php'. Вы найдете класс, который выступает в качестве поставщика в этом файле конфигурации. – Jason

0

класс loginuser использует черту под названием AuthenticatesUsers

если вы откроете эту черту, вы увидите функции (это относится и к другим контроллерам) Illuminate\Foundation\Auth\AuthenticatesUsers;

здесь код черта https://github.com/laravel/framework/blob/5.1/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php

извините за плохой формат, им с помощью телефона

также Auth::routes() он просто вызывает функцию, которая возвращает в AUTH маршруты Thats это (я думаю)

+0

Да, я смотрю через Auth/директорию, но я не нашел способ, как App \ Http \ Контроллеры \ Auth \ ResetPasswordController @ showResetForm, где я могу найти метод после того, как @, Стою много времени, чтобы найти его, но теперь я тоже не могу его найти. Я новичок в laravel .. – g1eny0ung

+1

вот полный путь 'vendor \ laravel \ src \ Illuminate \ Foundation \ Auth \ ResetsPasswords', если вы хотите измените это или что-то, не изменяйте это, просто добавьте тот же метод к контроллеру ур, а затем измените его, –

+0

@Achraf Khouadja, Кажется, вы мастер laravel. Мне нужна твоя помощь. Смотрите здесь: http://stackoverflow.com/questions/41047583/how-to-add-dynamic-dropdown-list-column-on-laravel-5-3-registration –

31

Auth маршруты для Laravel 5.3 вместо Auth :: маршрутов(). Я надеюсь, что это помогает ...

Route::group(['middleware' => ['web']], function() { 

// Login Routes... 
    Route::get('login', ['as' => 'login', 'uses' => 'Auth\[email protected]']); 
    Route::post('login', ['as' => 'login.post', 'uses' => 'Auth\[email protected]']); 
    Route::post('logout', ['as' => 'logout', 'uses' => 'Auth\[email protected]']); 

// Registration Routes... 
    Route::get('register', ['as' => 'register', 'uses' => 'Auth\[email protected]']); 
    Route::post('register', ['as' => 'register.post', 'uses' => 'Auth\[email protected]']); 

// Password Reset Routes... 
    Route::get('password/reset', ['as' => 'password.reset', 'uses' => 'Auth\[email protected]']); 
    Route::post('password/email', ['as' => 'password.email', 'uses' => 'Auth\[email protected]']); 
    Route::get('password/reset/{token}', ['as' => 'password.reset.token', 'uses' => 'Auth\[email protected]']); 
    Route::post('password/reset', ['as' => 'password.reset.post', 'uses' => 'Auth\[email protected]']); 
}); 

Так что, если вы изменить некоторые имена этих маршрутов, не забудьте также изменить во взглядах на действия постов!

2

функция порядка вызова:

  1. (Auth) Осветите \ Support \ Фасады \ Auth @ маршруты (https://github.com/laravel/framework/blob/5.3/src/Illuminate/Support/Facades/Auth.php)
  2. (App) Осветите \ Foundation \ Application @ аутентификации
  3. (Route) Осветить \ Routing \ Router

это маршрут, как это:

public function auth() 
{ 
    // Authentication Routes... 
    $this->get('login', 'Auth\[email protected]'); 
    $this->post('login', 'Auth\[email protected]'); 
    $this->get('logout', 'Auth\[email protected]'); 
    // Registration Routes... 
    $this->get('register', 'Auth\[email protected]'); 
    $this->post('register', 'Auth\[email protected]'); 
    // Password Reset Routes... 
    $this->get('password/reset/{token?}', 'Auth\[email protected]'); 
    $this->post('password/email', 'Auth\[email protected]'); 
    $this->post('password/reset', 'Auth\[email protected]'); 
} 
+0

https://github.com/laravel/framework/blob/5.3/src/Illuminate/Routing/Router.php#L298 –

7

Для Laravel 5.5.х

// Authentication Routes... 
$this->get('login', 'Auth\[email protected]')->name('login'); 
$this->post('login', 'Auth\[email protected]'); 
$this->post('logout', 'Auth\[email protected]')->name('logout'); 

// Registration Routes... 
$this->get('register', 'Auth\[email protected]')->name('register'); 
$this->post('register', 'Auth\[email protected]'); 

// Password Reset Routes... 
$this->get('password/reset', 'Auth\[email protected]')->name('password.request'); 
$this->post('password/email', 'Auth\[email protected]')->name('password.email'); 
$this->get('password/reset/{token}', 'Auth\[email protected]')->name('password.reset'); 
$this->post('password/reset', 'Auth\[email protected]'); 
Смежные вопросы