Qual è la differenza tra with, compact e array in when return view in laravel
Sono un po 'confuso, voglio sapere la differenza tra questi tre ritorni:
return view('post', ['post' => $post]);
return view('post', compact('post'));
return view('post')->with('post'=>$post);
Quindi, qualcuno può spiegarmi la differenza in modo semplice.
Risposte
Array : puoi passare un array di dati alle viste, in questo modo:
return view('post', ['post' => $post]);
Quando si passano le informazioni in questo modo, i dati dovrebbero essere un array con coppie chiave / valore. All'interno della visualizzazione, è quindi possibile accedere a ciascun valore utilizzando la chiave corrispondente, ad esempio<?php echo $key; ?>
with () : in alternativa al passaggio di un array completo di dati alla funzione di supporto della vista , è possibile utilizzare il metodo with per aggiungere singole parti di dati alla vista:
return view('post')->with('post' => $post); // multiple with method return view('post')->with('post' => $post)->with('comment' => $comment);
compact () : invece di utilizzare questo tipo di passaggio di dati, è possibile utilizzarlo compact()per passare i dati. compact () è una funzione php incorporata che consente di creare un array con nomi di variabili e relativi valori. i nomi delle variabili devono essere passati alla funzione compact come argomento stringa e quindi riceverai un array , quindi compatto passando il varibale sulla tua vista come il primo metodo:
return view('post', compact('post'));
// same as
return view('post', ['post' => $post]);
Vedere la documentazione ufficiale relativa al passaggio dei dati alle visualizzazioni
return view('post', ['post' => $post]);
return view('post', compact('post'));
questi due sono gli stessi del view()secondo argomento null or array, compact è una funzione php che accetta variabili e genera array associativi basati su variabili
e
return view('post')->with('post'=>$post);
in questo codice view()l'helper laravel non ha un secondo argomento quindi puoi usare la funzione with () come metodo di concatenamento e inviare dati alla visualizzazione