php - Laravel 雄辩的关系如何获取关系?
问题描述
我有用户表、工作表和 JobStatus 表。我使用关系获得用户工作
return User::find($dto->getUserId())
->jobs()
这会将所有用户作业作为集合返回,而不是作为用户模型内部的关系。现在我需要获取工作状态,但是当我尝试这个时
User::find($dto->getUserId())
->jobs()
->statuses()
我得到错误Call to undefined method
。我需要将状态作为集合获取,以便在从 db 获取它们时使用 where、sort by 等。有什么办法吗?
我需要做这样的事情,但有状态
return User::find($dto->getUserId())
->jobs()
->has('status')
->where('role','responsible')
->where('jobs.created_at','>=',Carbon::now()->subDays($dto->getPeriod())->toDateString())
->get();
解决方案
首先使用模型中与作业的关系定义您的 statuses() 函数
喜欢多对多或一对多的关系
public function statuses(){
return $this->belongsToMany('App\Job')->withTimestamps();
}
推荐阅读
- node.js - 初学者护照/反应:登录系统不工作
- android - 将 WebRTC 版本 1.0.24277 升级到 1.0.25331 时应用程序崩溃
- hyperledger-fabric - Hyperledger Fabric:一个组织只能看到交易的一些细节
- docker - Docker 中的 DB2 客户端
- angular - 如何进行组件之间的通信
- xml-parsing - liquibase 元素“databaseChangeLog”已使用但未声明
- javascript - Chrome 正在屏蔽 console.log 对象
- android-studio - 我们可以使用switch语句在android studio中使用按钮制作测验应用程序吗?
- c# - 连接属性尚未初始化 - Npgsql C#
- java - 如何使用 Mockito 在 Jersey 客户端模拟请求?