【问题标题】:What is the best way to return more values with laravel from controller to a view?使用 laravel 从控制器返回更多值到视图的最佳方法是什么?
【发布时间】:2020-07-04 00:59:56
【问题描述】:

将 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>

我想让值$yearscompact('profile') 从控制器返回到我的视图成为可能。我尝试使用数组并将两个值都传递给视图,但效果不佳。有人知道一次传递更多值的一些更好的做法吗?这对我将来也可能有用。

感谢您的帮助:)

戴夫

【问题讨论】:

  • 使用compact('profile','years')有什么问题??你有什么错误吗??
  • 嗨@zahidhasanemon,我只是按照你描述的方式尝试了紧凑,它也可以工作。直到现在我才知道紧凑型的含义:)

标签: php laravel view controller return


【解决方案1】:

尝试使用关联数组而不是compact

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

示例

您现在可以像这样在视图中访问这些变量:

{{ $profile }}

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

【讨论】:

  • 好的,我明白了,所以我离开了compact,如何通过视图访问返回数组中的这些值?我的意思是,数组没有像大多数数组那样的名称吗?
  • compact 只是一个创建关联数组 (php.net/manual/en/function.compact.php) 的 PHP 函数。所以你可以自己创建一个关联数组来做同样的事情。 Blade 将数组的值映射到按键命名的变量(即“年”变为$years
猜你喜欢
  • 1970-01-01
  • 2021-10-29
  • 2019-01-23
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多