我有一个用户模型,我想检查是否为用户分配了导师。
@foreach($question as $key => $qus)
<div ng-show="current.index == {{$key}}">{{$qus->question}}</div>
@endforeach
当我在修补程序中致电 class MyDate {
dates: Date[];
constructor() {
this.dates = [];
}
private addDays(currentDate) {
let date = new Date(currentDate);
date.setDate(date.getDate() + 1);
return date;
}
getDates(startDate: Date, endDate: Date) {
let currentDate: Date = startDate;
while (currentDate <= endDate) {
this.dates.push(currentDate);
currentDate = this.addDays(currentDate);
}
return this.dates;
}
}
let md = new MyDate();
let daysBetween: Date[] = md.getDates(new Date(2018, 7, 22), new Date(2018, 8, 30));
console.log(daysBetween);
时,会得到一个状态未定义的属性。
有什么想法吗?
答案 0 :(得分:0)
这里有几件事。首先,您的关系是一对多的。当您尝试使用关系时,应该期望返回Collection
,而不是单个实体。因此,尝试访问返回的集合上的->status
属性是行不通的。
第二,当您尝试像这样访问关系时:
$this->mentorapplication()
您将获得一个HasMany
实例,这将使您可以对查询进行更多约束,就像->where(...)
或->orderBy(...)
一样。您将需要使用->get()
或->first()
之类的东西来实际运行查询并获得所需的结果。您可以在此处省略()
,Laravel将为您加载该关系,并返回您的集合:
$this->mentorapplication
现在,我不确切知道您要实现的目标,但是例如您要查看是否至少分配了mentorApplication
个对象中的counsellorAssigned
个用户的状态为public function mentorAssigned()
{
foreach ($this->mentorapplication as $mentorapplication) {
if ($mentorapplication->status == 'counsellorAssigned') {
return true;
}
}
return false;
}
,则可以执行以下操作:
Collection
或者您可以使用Laravel的(e.g)
方法来帮助您,而不仅仅是在这里做一个循环。您可以采用多种方法,所以我就把它留在那里。