php - 从数据库中获取数据并传递给 View

标签 php mysql laravel

在 Controller 中,我试图从表中获取数据,然后将其传递给 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

但我得到的只是空页面,如果我尝试用 {{ $contact->first_name}} 回显值,我只会收到错误 Undefined property: Illuminate\Database\Eloquent\生成器::$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
);

最佳答案

Contact::where('id', $id) 仅使用查询生成器准备查询。您尚未执行查询或检索任何结果。

Contact::where('id', $id)->first() 将执行查询并检索第一个结果,尽管 id 可能是主键,Contact::find($id) 是获取与该 id 匹配的第一个结果的更快方法。

关于php - 从数据库中获取数据并传递给 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53283610/

相关文章:

php - 使用 Ajax 和 PHP 进行数据输出

php - 如果未从下拉列表中选择任何内容,则选择所有值

json - Laravel json 列查询以检查对象是否存在

Laravel 队列与 AWS Elastic Beanstalk

php - FPDF WriteHtml 不起作用

php - 将子域重定向到包含 CakePHP 应用程序的主目录中的文件夹

php - 如果已选中,如何将复选框值插入数据库表?

php - 检查 php 中的日期不适用于不同月份

php mysqli 使用通配符准备语句

mysql - Laravel Eloquent 和 3 表关系