我想我错过了很简单的事情。但我没有耐心寻求它,所以我需要问。
我正在尝试使用Event
类型的元素列表来呈现视图在我看来,我有一个foreach循环:
@foreach ($events as $e)
......
{{ $e->title }}
......
@endforeach
控制器:
$account = Account::find(\Session::get('account'));
$events = $account->events()->get();
return view('events.index')->with('events', $events);
根据我的理解,它应该以这种方式工作。但相反,我得到了 为foreach()提供的参数无效
我也试过:
$account = Account::find(\Session::get('account'));
$events = $account->events();
return view('events.index')->with('events', $events);
但是在这种方法中,我的foreach循环甚至不会运行一次(没有错误)。
当然,我的模型中已经定义了所有内容。
帐户:
public function events()
{
return $this->hasMany('App\Event');
}
一种有效的方法是将数据作为数组传递:
$account = Account::find(\Session::get('account'));
$events = $account->events()->get()->toArray();
return view('events.index')->with('events', $events);
但是我需要在我的视图中使用数组索引,如下所示:
@foreach ($events as $e)
......
{{ $e['title'] }}
......
@endforeach
我真的,真的不想这样做。
所以请告诉我我错过了什么。
更新: 我无法将$帐户传递到我的视图并在视图中使用$ account->事件,因为我需要在传递事件之前对事件执行一些过滤。
答案 0 :(得分:0)
这样使用
$account = Account::find(\Session::get('account'));
$events = $account->events;
return view('events.index',['events'=> $events]);
答案 1 :(得分:0)
使用收集:
$account = Account::find(\Session::get('account'));
$events = $account->events;
return view('events.index', collect('events'))
;