Laravel 5.7 Как получить данные из функции Controller show ($ id)?Строитель запросов - PullRequest
0 голосов
/ 03 июля 2019

StaffController

public function show($id){
  $staffinfo = DB::table('staff')->where('user_id', $id)->get();
  return view('staff.view')->with('staffinfo', $staffinfo); 
}

view.blade.php

<h1>{{$staffinfo->name}}</h1>
<p>{{$staffinfo->user_id}}</p>

Правильно ли использовать этот код для отображения данных из таблицы персонала в функции show($id)?

Получение ошибки:

"Свойство [имя] не существует в этом экземпляре коллекции. (Представление: F: \ xampp \ htdocs \ gchsc \ resources \ views \ staff \ view.blade.php)"

1 Ответ

2 голосов
/ 03 июля 2019

Переключатель ->get() на ->first().$staffInfo - это Collection записей базы данных, а не одна:

StaffController.php

$staffinfo = DB::table('staff')->where('user_id', $id)->first();

Тогда, по вашему мнению, будет работать следующее:

staff/view.blade.php

<h1>{{ $staffinfo->name }}</h1>
<p>{{ $staffinfo->user_id }}</p>

Или оставьте свой код как есть и выполните итерацию в своем представлении:

StaffController.php

$staffinfo = DB::table('staff')->where('user_id', $id)->get();

staff/view.blade.php

@foreach($staffInfo AS $staff){
  <h1>{{ $staff->name }}</h1>
  <p>{{ $staff->user_id }}</p>
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...