Le basi di Laravel 7 - Generazione di URL

Blog

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