请问下这种查询如何写

查询代码

Order::with("log")->first();

Order模型中 log方法

public function log()
    {
          return $this->
          hasMany(Log::class,'order_id',')
    }

疑问:我的log表中有userId字段,想通过一个自定义方法通过log表中的userId查询userinfo带到log中一起返回到上面的Order信息查询条件中,我该如何写log方法

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
随波逐流
最佳答案

按照你的描述, 逻辑关系应该是

order (一)-> log(多) -> user(一), 属于典型的 一对多 & 多对一

先定义OrderLog的关系模型

class Order extends Model
{
    public function logs() {
        $this-> hasMany(Log::class,'order_id','id');
    }
}

在定义 LogUser 的关系模型

class Log extends Model
{
    public function logs() {
        $this-> hasOne(User::class,'id','user_id');
    }
}

使用

// 使用`点`语法
Order::with("logs.user")->first();
2年前 评论
讨论数量: 6
陈先生
$model
  ->with(['relation1','relation2'])
  ->first();
2年前 评论

这个就是远程关系了 模型关联《Laravel 8 中文文档》 吧。

2年前 评论
// Model Order 
public function log()
{
      return $this->
      hasMany(Log::class,'order_id')->with('user')
}
2年前 评论

order::with('log.user')

2年前 评论
canbez 2年前
随波逐流

按照你的描述, 逻辑关系应该是

order (一)-> log(多) -> user(一), 属于典型的 一对多 & 多对一

先定义OrderLog的关系模型

class Order extends Model
{
    public function logs() {
        $this-> hasMany(Log::class,'order_id','id');
    }
}

在定义 LogUser 的关系模型

class Log extends Model
{
    public function logs() {
        $this-> hasOne(User::class,'id','user_id');
    }
}

使用

// 使用`点`语法
Order::with("logs.user")->first();
2年前 评论

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