Le basi di Laravel 7 - Generazione di URL
Generazione URL
- introduzione
- Le basi
- Generazione di URL di base
- Accesso all'URL corrente
- URL per percorsi con nome
- URL firmati
- URL per le azioni del controller
- Valori standard
introduzione
Laravel fornisce diversi aiutanti per aiutarti a generare URL per la tua applicazione. Questi sono principalmente utili quando si creano collegamenti nei modelli e nelle risposte API o quando si generano risposte di reindirizzamento a un'altra parte dell'applicazione.
Le basi
Generazione di URL di base
Il |_+_| helper può essere usato per generare URL arbitrari per la tua applicazione. L'URL generato utilizzerà automaticamente lo schema (HTTP o HTTPS) e l'host dalla richiesta corrente:
url
Accesso all'URL corrente
Se non viene fornito alcun percorso per |_+_| aiutante, un |_+_| viene restituita l'istanza, che consente di accedere alle informazioni sull'URL corrente:
$post = AppPost::find(1); echo url('/posts/{$post->id}'); // http://example.com/posts/1
È possibile accedere a ciascuno di questi metodi anche tramite |_+_| facciata :
url
URL per percorsi con nome
Il |_+_| helper può essere utilizzato per generare URL a route denominate. I percorsi denominati consentono di generare URL senza essere associati all'URL effettivo definito sul percorso. Pertanto, se l'URL del percorso cambia, non è necessario apportare modifiche al tuo |_+_| chiamate di funzione. Ad esempio, immagina che la tua applicazione contenga un percorso definito come il seguente:
IlluminateRoutingUrlGenerator
Per generare un URL per questa rotta, puoi usare |_+_| aiutante in questo modo:
// Get the current URL without the query string... echo url()->current(); // Get the current URL including the query string... echo url()->full(); // Get the full URL for the previous request... echo url()->previous();
Spesso genererai URL utilizzando la chiave primaria dei modelli Eloquent. Per questo motivo, puoi passare i modelli Eloquent come valori di parametro. Il |_+_| helper estrarrà automaticamente la chiave primaria del modello:
URL
Il |_+_| helper può essere utilizzato anche per generare URL per percorsi con più parametri:
use IlluminateSupportFacadesURL; echo URL::current();
URL firmati
Laravel ti consente di creare facilmente URL firmati per percorsi denominati. Questi URL hanno un hash della firma aggiunto alla stringa di query che consente a Laravel di verificare che l'URL non sia stato modificato da quando è stato creato. Gli URL firmati sono particolarmente utili per i percorsi accessibili pubblicamente ma che necessitano di un livello di protezione contro la manipolazione degli URL.
Ad esempio, potresti utilizzare URL firmati per implementare un link pubblico di annullamento dell'iscrizione inviato via email ai tuoi clienti. Per creare un URL firmato per una route denominata, usa |_+_| metodo del |_+_| facciata:
route
Se desideri generare un URL di percorso firmato temporaneo che scade, puoi utilizzare |_+_| metodo:
route
Convalida delle richieste di percorso firmate
Per verificare che una richiesta in entrata abbia una firma valida, dovresti chiamare il |_+_| metodo sull'ingresso |_+_|:
Route::get('/post/{post}', function () { // })->name('post.show');
In alternativa, puoi assegnare il |_+_| middleware al percorso. Se non è già presente, dovresti assegnare a questo middleware una chiave nel |_+_| . del tuo kernel HTTP Vettore:
route
Dopo aver registrato il middleware nel kernel, puoi collegarlo a una route. Se la richiesta in arrivo non ha una firma valida, il middleware restituirà automaticamente un |_+_| risposta di errore:
echo route('post.show', ['post' => 1]); // http://example.com/post/1
URL per le azioni del controller
Il |_+_| La funzione genera un URL per l'azione del controller data. Non è necessario passare lo spazio dei nomi completo del controller. Invece, passa il nome della classe del controller relativo a |_+_| spazio dei nomi:
route
Puoi anche fare riferimento ad azioni con una sintassi di array richiamabile:
echo route('post.show', ['post' => $post]);
Se il metodo controller accetta parametri di route, puoi passarli come secondo argomento alla funzione:
route
Valori standard
Per alcune applicazioni, potresti voler specificare valori predefiniti a livello di richiesta per determinati parametri URL. Ad esempio, immagina che molti dei tuoi percorsi definiscano un |_+_| parametro:
Route::get('/post/{post}/comment/{comment}', function () { // })->name('comment.show'); echo route('comment.show', ['post' => 1, 'comment' => 3]); // http://example.com/post/1/comment/3
È scomodo passare sempre il |_+_| ogni volta che chiami il |_+_| aiutante. Quindi, puoi usare |_+_| per definire un valore predefinito per questo parametro che verrà sempre applicato durante la richiesta corrente. Potresti voler chiamare questo metodo da un middleware di route in modo da avere accesso alla richiesta corrente:
signedRoute
Una volta che il valore predefinito per |_+_| è stato impostato, non è più necessario passare il suo valore durante la generazione di URL tramite |_+_| aiutante.
#laravel #php #sviluppo-web
progetti tableau per la pratica