如何在Laravel Eloquent中合并两个查询结果

时间:2018-04-30 11:10:52

标签: laravel eloquent

我有一个用于创建和编辑信息的表单。 我正在使用Form :: model来显示编辑表单中从数据库中查询的所有数据。现在我必须添加另一个表单部分,其数据存储在不同的表中。但我需要在编辑过程中以相同的形式显示这些数据。我试图在表单中放入两个参数:模型不起作用或我做错了。

{!! Form::model([$employee_data,$edu_info],['route'=>['employee.update',$employee_data->id],'method'=>'put','files'=> true]) !!}

然后我尝试在控制器中合并查询数据,如下所示:

public function edit($id)
{
    $edit_info['title'] = 'Edit User';
    $edit_info['country'] = Country::all();
    $employee_basic = Employee::withTrashed()->where('id',$id)->first();
    $employee_edu = EmployeeEdu::withTrashed()->where('employee_id',$id)->first();
    $employee_all_data = $employee_basic->merge($employee_edu);
    $employee_all_data->all();
    $edit_info['employee_data'] = $employee_all_data;
    return view('admin.employee.edit',$edit_info);
}

这也不起作用。我收到以下错误:

Call to undefined method Illuminate\Database\Query\Builder::merge()

我如何达到预期的效果?

编辑:我尝试使用->get()代替->first(),在这种情况下,我没有收到错误,但我的合并不起作用,因为我dd($employee_all_data)它只给了我价值$employee_edu

1 个答案:

答案 0 :(得分:2)

试试这个:

$employee_all_data = $employee_basic->toArray() + $employee_edu->toArray();