向从数据库调用中提取的数据添加新字段

作为特定作物搜索程序的一部分,我对同一个数据库表进行了两次调用,合并结果并将它们发送到生产线上。第一个调用查找与搜索到的作物(例如“豆类”)相关的数据。第二个调用查找与该作物(例如豆类)的作物组相关的数据。


第一次调用返回的数据将比第二次调用返回的数据更相关/更集中。我想向反映这一点的相应数据集添加一个标识符,以便我随后可以根据 Vue 组件中的相关性对数据进行排序/呈现。


以下代码从数据库中提取特定作物的信息;在使用从crop-group sql调用返回的数据“array_merge”之前,如何向$factsheets中的每一行添加/插入/附加一个新变量(例如“相关性”= 1)?


(为简单起见,我没有包含根据用户输入的作物名称确定crop.id 值的代码。)


public function getFactsheets($cropId){

    $factsheets = Factsheet::whereIn('crop_id',$cropId)

      ->join("crop_factsheet as cf","factsheets.id","=","cf.factsheet_id")

      ->join("crops as crops","crops.id","=","cf.crop_id")

      ->select('crops.name','title', 'factsheets.id', 'shortdesc', 'shortimg', 'factsheets.slug')

      ->orderBy('crops.name')

      ->get()->toArray();

      return $factsheets;

    }


一只甜甜圈
浏览 175回答 2
2回答

繁星coding

如果你给&value,那么 value 发生的任何变化都会直接保存在它的地址上。foreach(     $factsheets as $key => &$factsheet){ $factsheet['relevance'] = 1;     }工作演示。这是官方文档中引用的简明解释。

慕村225694

你可以简单地做一个 foreachforeach(     $factsheets as $key => $factsheet){ $factsheet['relevance'] = 1;     }
打开App,查看更多内容
随时随地看视频慕课网APP