Passare dati alle view

Per passare dati alle view ci sono 4 modi

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'));
}