Каков наилучший способ вернуть больше значений с laravel из контроллера в представление? - PullRequest
1 голос
/ 23 марта 2020

У меня возникли проблемы с передачей 2 значений в представление, я использую приведенный ниже код и пробовал несколько вещей, таких как передача его в массив.

Мой контроллер:

public function user(User $profile)
{

    $fdate = $profile->geboortedatum;
    $tdate = date('Y-m-d');
    $datetime1 = new DateTime($fdate);
    $datetime2 = new DateTime($tdate);
    $interval = $datetime1->diff($datetime2);
    $years = $interval->format('%y');//now do whatever you like with $years
    //dd($y);





return view('profile.profile', compact('profile'));
}  

Мой взгляд:

<div>
    <row>
        <div>Naam: </div>
        <div>{{$profile->name}}</div>
    </row>
    <row>
        <div>Geslacht: </div>
        <div>{{$profile->geslacht}}</div>
    </row>
    <row>
        <div>Op zoek naar: </div>
        <div>{{$profile->partnergeslacht}}</div>
    </row>
    <row>
        <div>Leeftijd: </div>
        <div>{{$years}}</div>
    </row>
</div>

Я хотел бы сделать возможным вернуть значения $years и compact('profile') из контроллера на мой взгляд. Я попытался использовать массив и передать оба значения в представление, но это не сработало. Кто-нибудь знает некоторые лучшие практики от передачи большего количества ценностей одновременно? Это может быть полезно для меня и в будущем.

Спасибо за помощь:)

Дэйв

1 Ответ

0 голосов
/ 23 марта 2020

Попробуйте использовать ассоциативный массив вместо compact

public function user(User $profile)
{
    ...
    return view('profile.profile', [
        'years' => $years,
        'profile' => $profile
    ]);
}

Пример

Теперь вы можете обращаться к этим переменным в своем представлении, как итак:

{{ $profile }}

@foreach($years as $year)
    {{ $year }}
@endforeach
...