Laravel Foreach Controller vs View

Mam*_*asa 1 php foreach laravel

我意识到自己无法弄清楚的事情.

当我在Controller中首先循环并将结果传递给我的视图时,我得到了不同的结果.在我看来,直接循环.

例如:我在我的控制器中有这个:

  public function index()
{
    $subscribers = Subscriber::where('user_id', Auth::user()->id)->orderBy('created_at','asc')->get();

    foreach ($subscribers as $key => $subscriber) {
      $var = $subscriber->name;
    }

    return view('backend.newsletter.contacts.index')->withSubscribers($subscribers)
                                                    ->withVar($var);
}
Run Code Online (Sandbox Code Playgroud)

通过在我的视图中使用{{$ var}},我得到的只是"John".

但是当我在视图中而不是在Controller中使用foreach循环时:

@foreach($subscribers as $key => $subscriber)
 {{$subscriber->name}}
@endforeach
Run Code Online (Sandbox Code Playgroud)

我得到两个结果,"约翰"和"丹".这完全有意义,因为我的数据库中有两个条目.

那么我怎么会得到两个不同的结果呢?

Ale*_*nin 5

当你这样做时:

foreach ($subscribers as $key => $subscriber) {
    $var = $subscriber->name;
}
Run Code Online (Sandbox Code Playgroud)

每次迭代都会覆盖,$var因此您始终可以获得最后一个值.例如,如果你有['Dan', 'John, 'Alice', 'Alan'],你会得到Alan.

好的做法是将数据传递给视图并迭代它@foreach.