如何将元素存储在 Laravel 数组的变量中?

How to store an element in a variable from array in Laravel?

我想将 "area" 存储在 $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 行也没有被提取!我正在尝试做一个简单的推荐系统。

错误

Exception Property [area] does not exist on this collection instance.

.get()returns一个对象数组只获取一个对象使用.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;