我有 2 个表,用户和子管理员认为用户有 3 列,子管理员有 2 列,我想将 3+2(5 列)数据放入单个可验证数组中
我想使用的技术是,在用户表中,我有一个id,它与subadmin表中的sub_admin_id(列)相同,我如何使用雄辩模型首先将id与sub_admin_id链接起来,然后进入单个查询,在单个可验证中获取5列数组
这里我用来获取数据
$subadmindata = User::find($id)->get(); // [column1 ,column2 ,column3 ]
$subadmindata1 = SubAdmin::find($id)->get(); // [column1 ,column2 ]
输出应该是
$data = // [column1 ,column2 ,column3 , column4 ,column5 ]
注意我不想使用数组合并或组合方法我想使用雄辩模型进行学习
concat
$subadmindata = User::find($id)->get();
$subadmindata1 = SubAdmin::find($id)->get(); // it will return array of collections
$data = $subadmindata->concat($subadmindata1);
注意当您在
之后使用get
时,它会停止其工作,因此无需在此处find
find
get()
方法将为您提供一个集合而不是数组,因此您可以按如下方式合并两个集合。
$subadmindata = User::find($id)->get();
$subadmindata1 = SubAdmin::find($id)->get();
$data = $subadmindata->merge($subadmindata1);
您不能将 find 与 get 一起使用(假设您需要一个结果而不是所有用户)。尝试这个。但看起来你需要首先正确地建立关系。无论如何,快速回答如下。
$userCols = User::select('column1','col2','col3')->find($id);
$subAdminCols = SubAdmin::select('col4','col5')->find($id);
$cols = array_merge($userCols->toArray(), $subAdminCols->toArray());
试试这个 在用户模型中
public function subadmin(){
return $this->hasOne(SubAdmin::class,'sub_admin_id');
}
在控制器中
$sub_admins = User::find($id);
dd($sub_admins->subadmin->sub_admin_id)
您可以使用 php
...
运算符来推送数据
这样的例子
$subadmindata = User::find($id)->get()->toArray(); // [column1 ,column2 ,column3 ]
$subadmindata1 = SubAdmin::find($id)->get()->toArray(); // [column1 ,column2 ]
array_push($subadmindata, ...$subadmindata1);
return $subadmindata