dth8312 2018-11-13 14:49
浏览 481
已采纳

从数据库获取数据并传递给视图

In controller I am trying to get data from table, and then pass it to the view.

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

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

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

But I get just empty page, and if I try to echo value with {{ $contact->first_name}} i just receive error Undefined property: Illuminate\Database\Eloquent\Builder::$first_name.
I also tried to use find method, but got the same result. Table schema:

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条回答 默认 最新

  • dongshuogai2343 2018-11-13 14:54
    关注

    EDIT: Might be because you're not using ->first(); after the query.

    Not really sure why that wouldn't work, you can try this instead:

    public function view($id)
    {
        $contact = Contact::find($id);
    
        return view('contact.edit')->with('contact', $contact);
    }
    

    Then in your view you can access all properties like so:

    {{$contact->id}}
    {{$contact->first_name}}
    //etc
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据