Как объединить два запрошенных результата в Laravel Eloquent - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть одна форма, которую я использую для создания и редактирования информации. Я использую 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 голосов
/ 30 апреля 2018

Попробуйте это:

$employee_all_data = $employee_basic->toArray() + $employee_edu->toArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...