Escludere la rotta dall'authentication di Laravel

Dopo aver eseguito php artisan make:auth tutti i routes richiesti sono nel file route.php , ma è ansible rimuoverne uno (voglio rimuovere il path di logging)?

Attualmente ho

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

So che Route::auth() è una scorciatoia per aggiungere tutti i routes. Devo specificare le rotte da solo invece di usare la scorciatoia?

Purtroppo non è ansible escludere il registro con l'implementazione corrente di Route::auth() .

Dovresti specificare manualmente tutti i routes

 // Authentication Routes... $this->get('login', 'Auth\[email protected]'); $this->post('login', 'Auth\[email protected]'); $this->get('logout', '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]'); 

Penso che sia una cosa abbastanza comune da voler fare sarebbe bello se ci fosse un parametro per il metodo auth da dire senza logging, magari potresti submit una richiesta pull al progetto.

Ho solo YOLO e cambio questo in RegisterController.php

 public function __construct() { $this->middleware('guest'); } 

a questa

 public function __construct() { $this->middleware('auth'); } 

Questo rende la pagina di logging che richiede di essere loggato per raggiungerlo.

È un hack. Ma è un buon compromesso.

EDIT: e aggiungi questo alla tua seminatrice per semplificarti la vita:

  $u1= new App\User; $u1->name = 'Your name'; $u1->email = '[email protected]'; $u1->password = bcrypt('yourPassword'); $u1->save(); 

Come diceva Mark Davidson, non è ansible uscire dalla scatola. Ma è così che ho gestito.

Ora potrebbe essere eccessivo, ma io passo lungo una serie di ciò che è necessario. Se non vengono passati parametri, vengono create le rotte predefinite.

 // Include the authentication and password routes Route::auth(['authentication', 'password']); 
 /** * Register the typical authentication routes for an application. * * @param arrays $options * @return void */ public function auth(arrays $options = []) { if ($options) { // Authentication Routes... if (in_arrays('authentication', $options)) { $this->get('login', 'Auth\[email protected]'); $this->post('login', 'Auth\[email protected]'); $this->get('logout', 'Auth\[email protected]'); } // Registration Routes... if (in_arrays('registration', $options)) { $this->get('register', 'Auth\[email protected]'); $this->post('register', 'Auth\[email protected]'); } // Password Reset Routes... if (in_arrays('password', $options)) { $this->get('password/reset/{token?}', 'Auth\[email protected]'); $this->post('password/email', 'Auth\[email protected]'); $this->post('password/reset', 'Auth\[email protected]'); } } else { // 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]'); } } 

Per il tuo caso, probabilmente puoi semplicemente passare un valore boolean come parametro invece di un arrays . Se il valore boolean è true , non caricare i routes del register , altrimenti caricare tutto.

Spero che sia d'aiuto.