【问题标题】:How to store an element in a variable from array in Laravel?如何将元素存储在 Laravel 中数组的变量中?
【发布时间】:2020-04-29 00:01:05
【问题描述】:

我想将“区域”存储在来自$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 行也未获取!我正在尝试制作一个简单的推荐系统。

错误

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

【问题讨论】:

  • 你的school_infos表结构是什么?

标签: mysql arrays laravel laravel-6


【解决方案1】:

.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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 2019-08-16
    • 2020-02-20
    • 1970-01-01
    相关资源
    最近更新 更多