这里为什么可以这样写 $user = $this->find ($user_id); ?

在app/Models/Traits/ActiveUserHelper.php

 foreach ($users as $user_id => $user) {
            // 找寻下是否可以找到用户
            $user = $this->find($user_id);

            // 如果数据库里有该用户的话
            if ($user) {

                // 将此用户实体放入集合的末尾
                $active_users->push($user);
            }
        }

这里的$this->find()没有指定模型,他为什么会去user模型里面查找user_id ? 好奇怪 ,大佬们解释一下,谢谢啦!

失之东隅 , 收之桑榆
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4
KayuHo

trait 了解下哦

6年前 评论
pardon110

$this->find($user_id) $this是出现在trait内,它指向引入该trait的类实例。由于在User模型中引入了此trait, 此时$this即为User类的实例,而find只是User模型上的一个方法,其参数为模型的主键,所以其实是找去 user 表里面查找 与$user_id变量值相等的主键id记录,返回查询到的user模型实例

6年前 评论

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