【发布时间】:2019-09-17 13:53:02
【问题描述】:
我有一个模型方法,我试图返回一个开始和结束日期。
像这样:
public function start_end_date()
{
$instances = $this->hasMany(Instance::class, 'instance_id')
->where('instance_id', '=', $this->id)
->where('weekstart', '>=', time());
$dates = $instances->pluck('weekstart')->toArray();
$dates = array_map('strtotime', $dates);
$startdate = min($dates);
$enddate = strtotime("+7 day", max($dates));
return array('startdate' => $startdate, 'enddate' => $enddate);
}
在我看来,我已将$courses 传递给视图。该对象通过其模型返回courseinstances,如
public function courseinstances()
{
return $this->hasMany(CcoursesInstance::class, 'course_id')
->where('startdate', '>=', time());
}
因此,鉴于我可以循环遍历 $courses(例如 @foreach $courses as $course)并循环遍历实例(例如 @foreach $course->courseinstances as @instance)并且效果很好。例如,我可以访问某些字段或方法返回的值作为$instance->somedata
但在我有$course->courseinstances->start_end_date->startdate的视图中
Laravel 说
Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation (View:
我只是想不通 Laravel 希望我如何返回开始和结束日期,然后在视图中引用它。我不想将单独的变量传递给视图。我只想使用传递给视图的 $courses,然后像处理与课程相关的其他数据一样向下钻取。
想法?
谢谢, 布赖恩
【问题讨论】:
标签: laravel