如何在拉拉维尔数组中的变量中存储元素?



我想将"区域"存储在$school_info array$area变量中。使用$area我希望将更多的 3 行存储到 3 个不同的数组中,例如:$school_info1$school_info2$school_info3

public function schooldetailviewid($id)
{
$school_id = $id;
$school_info = DB::table('school_infos')->where('school_id', '=', $school_id)->get();
$area = $school_info->area;
// recomendation start
$school_info1 = DB::table('school_infos')->where('area', '=', $area)->get();
$school_info2 = DB::table('school_infos')->where('area', '=', $area)->get();
$school_info3 = DB::table('school_infos')->where('area', '=', $area)->get();
// recomendation end
return view('schooldetail', compact('school_info', 'school_info1', 'school_info2', 'school_info3'));
}

问题:元素的存储不起作用,而且没有获取另外 3 行!我正在尝试制作一个简单的推荐系统。

错误

异常属性 [区域] 在此集合实例上不存在。

.get()返回一个对象数组,以仅获取一个对象使用.first()

$school_info = DB::table('school_infos')->where('school_id', '=', $school_id)->first();
$area = $school_info->area;

否则,您需要访问数组的第一个元素:

$school_info = DB::table('school_infos')->where('school_id', '=', $school_id)->get();
$area = $school_info[0]->area;

最新更新