这里为什么可以这样写 $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 ? 好奇怪 ,大佬们解释一下,谢谢啦!
关于 LearnKu
trait了解下哦@Joy_he 哦哦,看到了,谢谢啦!
@someonelikeyou 学习到了,谢谢!
$this->find($user_id)$this是出现在trait内,它指向引入该trait的类实例。由于在User模型中引入了此trait, 此时$this即为User类的实例,而find只是User模型上的一个方法,其参数为模型的主键,所以其实是找去 user 表里面查找 与$user_id变量值相等的主键id记录,返回查询到的user模型实例