Laravel6.2无法获取从数据库中检索的数据的属性



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

尝试获取非对象的属性"first_name">

它引用了以下代码行:

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

我使用 Laravel 的"show"函数从我的数据库中获取这些数据,如下所述:

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'));
}

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

提前感谢!

亲切问候

吉尔特-扬·克纳彭

很可能,$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'));
}

相关内容

  • 没有找到相关文章

最新更新