-1

我有一个关于在 Laravel 中显示我的数据库中的数据的问题。我收到以下错误:

试图获取非对象的属性“first_name”

它指的是这行代码:

 @foreach ($contact as $c)
    <h1 class="display-4">Bekijk details voor contact: {{ $c->first_name }} {{ $c->last_name }}</h1>
 @endforeach

我使用 Laravel 的“显示”功能从我的数据库中获取这些数据,如下所述:

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

    return view('contacts.show', compact('contact'));
}

我的路由如下所示:

Route::resource('contacts', 'ContactController');

我无法解决这个错误的原因是因为它似乎适用于其他功能,如 Laravel 的“编辑”功能,如下所述:

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

    return view('contacts.edit', compact('contact'));
}

任何帮助将不胜感激,我想知道为什么它不适用于我的“显示”功能,而它适用于我的“编辑”功能,有什么我不知道的差异吗?

提前致谢!

亲切的问候,

吉尔特-扬·克纳彭

4

1 回答 1

1

很可能,$contactobject而不是collection,所以你不需要循环遍历它。您可以直接访问它。

<h1 class="display-4">Bekijk details voor contact: {{ $contact ->first_name }} {{ $contact ->last_name }}</h1>

更新最好使用route model binding,所以如果联系人不存在,它会处理。

public function show(Contact $contact)
{
    return view('contacts.show', compact('contact'));
}
于 2019-12-03T20:49:43.060 回答