$feed_items 对象里并没有 user 的相关信息,为什么 $status->user 能获取到用户相关的信息

根据教程我在user的model里添加了feed方法

$feed_items对象里并没有user的相关信息,为什么$status->user能获取到用户相关的信息
在staticController的控制器的home方法中,新增了当前用户登录检查,获取当前用户发布信息的代码,并转换成了数组进行打印输出

$feed_items对象里并没有user的相关信息,为什么$status->user能获取到用户相关的信息

在页面的打印结果里,并没有看到有user相关的信息;

$feed_items对象里并没有user的相关信息,为什么$status->user能获取到用户相关的信息

但是我们又能在页面模版里通过$stats->user进行获取用户信息,并传给子模版;

这里的$stats->user是通过什么机制拿到当前登录用户的信息的呀??是重新调用user的model并实例化后,输出当前用户信息么??

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 5

我也在想这个问题,请问知道怎么回事了吗

4年前 评论

在 10.2 这节中定义了用户和微博模型的关联。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Status extends Model
{
    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

所以可以通过 $status->user 访问到 User 模型 ,具体的可以看文档中的模型关联这一节。

4年前 评论

@ishu 意思是在前段模版渲染的时候,再去status模型里面实例化了user么?

4年前 评论

@dwtmtdh

  1. $status->user 拿到的是当前 $stauts 对象对应的 User类的实例, 不是当前登录用户.可以理解为当前 $statususer_id=2 那么得到的就是 id=2User 对象.
    2.至于你说的 $status 中没有 user 相关的信息,我们又能得到 $status 对应的 user 是得益于 PHP 的魔术方法 __get().具体可以看下站内的这篇文章: 博客:Laravel 动态属性的实现
4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!