Получить данные из базы данных и перейти к просмотру - PullRequest
0 голосов
/ 13 ноября 2018

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

//controller
public function view($id)
{
    $contact = Contact::where('id', $id);

    return view('contact.edit', ['contact' => $contact]);
}

//view
@foreach($contact as $key=>$value)
    {{ $value }}
@endforeach

Но я получаю просто пустую страницу, и если я пытаюсь отобразить значение с {{ $contact->first_name}}, я просто получаю ошибку Undefined property: Illuminate\Database\Eloquent\Builder::$first_name.
Я также пытался использовать метод поиска, но получил тот же результат. Схема таблицы:

CREATE TABLE `contacts` (
  `id` int(11) NOT NULL,
  `first_name` varchar(25) NOT NULL,
  `last_name` varchar(25) NOT NULL,
  `email` varchar(35) NOT NULL,
  `home_phone` int(10) DEFAULT NULL,
  `work_phone` int(10) DEFAULT NULL,
  `cell_phone` int(10) DEFAULT NULL,
  `best_phone` enum('home_phone','work_phone','cell_phone') NOT NULL,
  `address_1` varchar(100) DEFAULT NULL,
  `address_2` varchar(100) DEFAULT NULL,
  `city` varchar(35) DEFAULT NULL,
  `state` varchar(35) DEFAULT NULL,
  `zip` int(6) DEFAULT NULL,
  `country` varchar(35) DEFAULT NULL,
  `birth_date` date DEFAULT NULL,
  `manager` int(11) UNSIGNED NOT NULL
);

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Contact::where('id', $id) только подготавливает запрос с помощью построителя запросов. Вы еще не выполнили запрос или не получили никаких результатов.

Contact::where('id', $id)->first() выполнит запрос и получит первый результат, хотя id, вероятно, является первичным ключом, Contact::find($id) - более быстрый способ получить первый результат, соответствующий этому идентификатору.

0 голосов
/ 13 ноября 2018

РЕДАКТИРОВАТЬ: Возможно, потому что вы не используете ->first(); после запроса.

Не совсем уверен, почему это не сработает, попробуйте вместо этого:

public function view($id)
{
    $contact = Contact::find($id);

    return view('contact.edit')->with('contact', $contact);
}

Тогда, по вашему мнению, вы можете получить доступ ко всем свойствам, например, так:

{{$contact->id}}
{{$contact->first_name}}
//etc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...