【发布时间】:2020-03-03 17:02:12
【问题描述】:
错误:试图获取非对象的属性“gender_id”
控制器:
public function printreports(Request $request)
{
$id = $request->get('select2'); //eg. id=1
$teachers = DB::table('teachers')->find($id);
return view('teachers.report1',compact('teachers'));
}
查看:
@foreach($teachers as $teacher)
{{$teacher->gender_id}}
@endforeach
如果我通过替换以下查询来使用 Eloquent 执行此操作,它可以工作,但我想使用如上所述的 DB 查询来执行此操作。
$teachers = Teacher::find($id);
【问题讨论】:
-
通过dd查找返回的数据列表,eloquent返回数组中的数组列表,再返回数据列表。
-
您正在获取单个记录,因此无需循环
-
使用 DB 外观时显示屏幕 dd $teachers
-
如果你只想要 1 位老师,按 id,你为什么将它命名为
teachers......你试图再次迭代一个对象,这将迭代公共属性 ..你不'没有收藏 -
数组中的一个 id ... 将数组传递给
findonModel会导致它像您试图找到许多一样处理它,这将返回一个 Collection ... 结束打电话给findMany
标签: laravel laravel-5 laravel-6