Собирайте данные из нескольких таблиц из базы данных и сталкивайтесь с проблемой, чтобы показать, что данные в блейде - PullRequest
2 голосов
/ 08 ноября 2019

Я новичок в Laravel. Я собираю данные из трех таблиц базы данных для вошедшего в систему пользователя.

$Employee = Employee::where("id", $id)->get();
$Salary = Salary::where("emp_id", $id)->get();
$SalaryDetails = SalaryDetails::where("emp_id", $id)->get();
$data = array(
    'Employee'      => $Employee,
    'Salary'        => $Salary,
    'SalaryDetails' => $SalaryDetails
);
return view('pages.manager.salaryDetails')->with($data);

Когда я отправляю эти данные на блейд, он говорит:

Property ... does not exist on this collection instance.

Здесь, если я использую foreach проблема решена. Проблема возникает, когда я называю это {{$Employee->fullname}}. Я не хочу использовать foreach здесь, потому что я собираю данные для одного пользователя. Есть ли способ показать данные в блейде без использования foreach?

1 Ответ

1 голос
/ 08 ноября 2019

Чтобы получить одного пользователя, используйте find вместо get:

$Employee = Employee::find($id);

Когда вы используете where, чтобы отфильтровать некоторые данные и затем получить их с помощью метода get, вы получитеколлекция. В вашем случае вы получите коллекцию с одним Employee.

. В этом случае вы также можете сделать следующее:

$Employee = Employee::where("id", $id)->first();

Метод first возвращает первый элемент в коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...