Introduzione a Laravel Route Controller

Questi controller consentono di creare le classi del controller utilizzando metodi utilizzati per gestire varie richieste. Sarebbe molto più semplice se comprendiamo il concetto di controller di rotta laravel con l'aiuto di un esempio. Faremo un passo alla volta per capire bene i controller di routing. Quindi qui andiamo con i passaggi:

Come creare Laravel Route Controller?

Ecco alcuni dei passaggi per la creazione di controller di routing laravel che sono spiegati di seguito:

Passaggio 1: il primo passo sarebbe quello di creare un controller. Se non si ha familiarità con la creazione di un controller, passare attraverso i punti seguenti per la creazione di un controller, altrimenti passare direttamente al passaggio 2 per Controller di routing.

  • Utilizzare il comando artigianale di seguito per creare il controller.

Codice:

Php artisan make: Controller MyController

  • Il file MyController.php verrà creato il cui codice predefinito è il seguente.

Codice:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
public function show($id)
(
//
)
)

Passaggio 2: ora devi scrivere questo percorso sotto nel file web.php.

Codice:

Route::get('/post', ' ');

Qui il primo parametro è l'URL a cui si desidera accedere e MyController è ovviamente il nome del nostro controller. Lo 'show' come puoi vedere nel file MyController.php, è il metodo. Quindi, @show qui indica che il metodo show () verrebbe chiamato quando si preme l'URL '/ post'.

Passaggio 3: ora è possibile aggiungere linee di codifica come mostrato di seguito.

Codice:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
/**
*Display resource
*
*/
public function show($id)
(
//
)
/**
*Display resource listing
*
*/
public function index()
(
//
)
/**
*Editing resource
*
*/
public function edit($id)
(
//
)
)

Passaggio 4: ora è il momento di premere l'URL. Otterrai un output specificato dopo aver inserito l'URL. Speriamo che abbiamo coperto abbastanza approfondimenti sui controller da poter accedere ora al tuo controller. Passiamo ora a come possiamo anche trasmettere i dati alla nostra classe di controller. Ancora una volta, sarebbe molto più semplice se imparassimo a passare i dati attraverso i parametri al nostro controller con l'aiuto di un esempio.

Trasferimento dei dati al controller

1. Scrivi questo percorso di seguito nel file web.php:

Codice:

Route::get('/post/(id)', ' ');

L'unica differenza nella definizione di questa route è che questa riga di codice contiene anche il parametro "id" con l'URL.

2. Modifica il file "MyController.php" come mostrato di seguito.

Codice:

public function show($id)
(
return “ID is :”.$id;
)

Qui l'unica differenza nel metodo show () è che lo abbiamo modificato passando il parametro 'id' nel metodo show ().

3. Ancora una volta, premiamo l'URL nel nostro browser. Otterrai un output in base al parametro.

Namespace

Ecco alcune informazioni sugli spazi dei nomi:

Durante la definizione del metodo Route :: get () per la nostra classe controller, non è necessario menzionare lo spazio dei nomi completo per il controller poiché "RouteServiceProvider" carica quasi tutti i file di route in un gruppo di route in cui è contenuto lo spazio dei nomi. Devi semplicemente specificare quella parte del nome che verrà dopo App / Http / Controller.

Ad esempio, se il percorso completo della classe controller è App / Http / Controllers / User / UsersController, non è necessario menzionare lo spazio dei nomi completo. Puoi semplicemente definire il percorso come segue:

Codice:

Route::get('\user', 'User\ ');

Controller ad azione singola

Se desideri definire il controller ad azione singola, sarai in grado di farlo posizionando un singolo metodo '__invoke' sul controller. Si dice che PHP abbia alcune funzioni incredibilmente magiche e la funzione '__invoke' arriva a quella lista magica. Con l'aiuto di questa magica funzione '__invoke', puoi definire la classe usando solo una funzione PHP '__invoke' al suo interno, e in qualsiasi momento quando l'oggetto verrà chiamato chiamerà direttamente il metodo '__invoke' senza nemmeno averlo manualmente chiamato $ obj-> randomFunction ().

Ora sorge la domanda, dove puoi usarla? Abbastanza giusto, è la nostra psicologia porre questa domanda ogni volta che incontriamo nuove funzionalità. Ad esempio, questo può essere utilizzato durante l'implementazione di SRP (Single Responsibility Principle). Come abbiamo creato un controller sopra usando il comando artisan, allo stesso modo usando php artisan: make controller MyController, la codifica del file MyController apparirà come mostrato di seguito:

Codice:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
//
)

È bene aggiungere righe di codice per il metodo __invoke () nella classe MyController. Ecco un esempio di come apparirà la classe dopo aver aggiunto il codice.

Codice:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
public function __invoke($id)
(
return “ID is :”.$id;
)
)

Ora, il file web.php deve essere modificato in quanto è l'unico responsabile di tutta la gestione delle azioni. La riga di codice sarà simile a questa:

Codice:

Route::get('/post/(id)', 'MyController');

Questa riga di codice colpirà la funzione '__invoke ()' della nostra classe MyController. Da qui si può concludere che non è necessario scrivere la funzione @invoke per accedere ai controller a singola azione.

Nota: nel caso in cui non si specifichi alcuna azione, ovvero non si scriva il metodo __invoke (), verrà generato un errore di azione del percorso non valido, ovvero UnexpectedValueExpression.

Approfondimenti per la creazione di percorsi Laravel

Ogni rotta in Laravel è definita nei file di rotta. Questi file di route si trovano nella sottodirectory delle route. Non è necessario caricare manualmente questi file poiché vengono automaticamente caricati dal framework di Laravel. Il file di route dell'applicazione viene archiviato nel file 'app / Http / route.php'. Il routing generale per qualsiasi richiesta in Laravel è simile a:

Codice:

Route::get ('/', anyFunction() (
return 'This is Index';
));

Codice:

Route::post ('user/dashboard', anyFunction() (
return 'This is Dashboard';
));

Meccanismo di routing

Il meccanismo di routing può essere compreso con tre passaggi che seguono:

  • Innanzitutto, crea un URL di root ed eseguilo.
  • Assicurati che il tuo URL corrisponda ai metodi nel file root.php, solo allora verranno eseguite tutte le funzioni correlate.
  • La funzione richiama prima i file modello e quindi la funzione view () viene chiamata con un nome file in risorse / viste /.

Conclusione

Speriamo che finora abbiamo appreso un buon numero di concetti di Laravel Route Controller che ti permetteranno di creare il tuo controller di routing Laravel per la tua applicazione, che sarà sicuro e potente allo stesso tempo.

Articoli consigliati

Questa è una guida a Laravel Route Controller. Qui discutiamo i dati che passano al controller, agli spazi dei nomi, al controller a singola azione e ai vari passaggi per creare un Laravel. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Che cos'è Laravel?
  2. laravel vs Ruby on Rails
  3. Laravel vs Codeigniter
  4. Comandi Laravel

Categoria: