Per passare dati alle view ci sono 4 modi
Indice
Tramite array
Nel controller app\Http\Controllers\PageController.php aggiungere al richiamo della view un array di dati (in questo caso $this->data da riferimento a $data definito all’inizio del controller)
public function staff()
{
return view('staff',
[
'title' => 'Our staff',
'staff' => $this->data
]
);
}
Nella view resources\views\staff.php i valori si richiamano come fossero variabili.
<h1><?=$title?></h1>
<?php
if (!empty($staff)){
echo '<ul>';
foreach($staff as $person){
echo '<li>'.$person['name'].' '.$person['lastname'].'</li>';
}
echo '</ul>';
}
Metodo with()
Sempre nel controller app\Http\Controllers\PageController.php passare i dati tramite il metodo with(); chiave e valore sono separati da virgola.
public function staff()
{
return view('staff')
->with('title', 'Our staff')
->with('staff', $this->data);
}
Metodi magici
Sempre nel controller app\Http\Controllers\PageController.php passare i dati tramite i metodi magici withNomevariabile(); ovviamente Nomevariabile dovrà avere la prima lettera maiuscola per essere riconosciuta come tale.
public function staff()
{
return view('staff')->withTitle('Our staff')->withStaff($this->data);
}
Funzione php compact
Sempre nel controller app\Http\Controllers\PageController.php usando la funzione php compact() Laravel crea un array con le chiavi definite dentro compact e come valori cercherà delle variabili che coincidono con il nome della chiave; è un metodo simile al primo ma resta più ordinato.
public function staff()
{
$staff = $this->data;
$title = 'Our staff';
return view('staff', compact('title', 'staff'));
}