我试图获取date和courseName的值,但我却遇到了这些错误异常。
循环:
array:2 [▼
0 => Collection {#284 ▼
#items: array:3 [▼
0 => {#277 ▼
+"date": "2018"
}
1 => {#279 ▶}
4 => {#282 ▶}``
]
}
1 => Collection {#283 ▼
#items: array:2 [▼
0 => {#280 ▼
+"id": 1
+"courseName": "newc1"
}
1 => {#271 ▶}
]
}
]
//tried these
@foreach ($result as $key=> $value)
@foreach ($value as $val)
{{$val->date}}
@endforeach
@endforeach
//controller
$data = array();
$date = db::table('students')->select('date')->get()->unique();
$course = db::table('courses')->select('id', 'courseName')->get();
array_push($data, $date, $course);
需要遍历这些。相反得到 ErrorException(E_ERROR) 未定义的属性:stdClass :: $ date
答案 0 :(得分:0)
如果日期尚可,则必须控制数据库结果,还需要为laravel选择distinct(),并且必须在其末尾获取
//This
$date = db::table('students')->select('date')->get()->unique();
//To This
$date = db::table('students')->select('date')->distinct()->get();
if(!$date)
return $this->response;
//or
return false;
//更新
$course = DB::table('students')
->select('id','courseName', 'courses')
->groupBy('courses')//What ever you want to uniqe
->get();
对于退货视图示例,您必须自己更改
return $this->responseWithView("index //PAGE","success", ['courses' => $course,'anything' => $youwant]);
答案 1 :(得分:0)
我不太确定将这些集合放在一个数组中要完成的工作,但这是解决问题的一种方法:
我注意到您正在将具有不同属性的集合插入数组。
$date = db::table('students')->select('date')->get()->unique();
因此每个项目都将具有date
属性
在下一个查询中,选择不同的列:
$course = db::table('courses')->select('id', 'courseName')->get();
此处每个项目将具有id
和courseName
属性
如您所见,您在同一阵列中持有不同的物品。
因此,您需要检查date
属性是否存在。
@foreach ($result as $key=> $value)
@foreach ($value as $val)
@if(isset($val->date))
{{$val->date}}
@endif
@endforeach
@endforeach