在控制器中,我试图从表中获取数据,然后将其传递给视图。
//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
.
我也尝试过使用find方法,但是得到了相同的结果。表架构:
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条答案
按热度按时间nnt7mjpx1#
编辑:可能是因为你没有使用
->first();
在查询之后。不确定为什么这样不行,你可以试试这个:
在您的视图中,您可以访问所有属性,如下所示:
2wnc66cl2#
Contact::where('id', $id)
仅使用查询生成器准备查询。您尚未执行查询或检索到任何结果。Contact::where('id', $id)->first()
将执行查询并检索第一个结果,尽管id
很可能是主键,Contact::find($id)
是获得与该id匹配的第一个结果的更快方法。