Laravel:如何在多对多关系中使用where子句

时间:2018-08-18 03:01:34

标签: php laravel many-to-many has-and-belongs-to-many

我如何在多对多关系中使用where子句

表:用户

   id - name - email

表格:变化

   id - name

表:shifting_user

   id - user_id - shifting_id

用户模型:

public function shiftings()
{
    return $this->belongsToMany('App\shifting');
}

在控制器im中使用以下自定义查询

public function index()
{
    return $user = DB::select('select * from shifting_user
    where user_id in (select id from users)' );
}

如何将其转换为laravel标准/等价查询。

1 个答案:

答案 0 :(得分:0)

您需要先设置他们的关系。

在您的班次模式中:

//1. Generate An SCNPlane With The Same Size As Our Image
let realScaleNode = SCNNode(geometry: SCNPlane(width: widthInMetres, height: heightInMeters))
realScaleNode.geometry?.firstMaterial?.diffuse.contents = image
realScaleNode.position = SCNVector3(0, 0, -1)

//2. Add It To Our Hierachy
self.augmentedRealityView.scene.rootNode.addChildNode(realScaleNode)

在您的用户模型中:

public function users()
{
    return $this->belongsToMany(User::class);
}

那么您只需进行一次急切的加载即可获得所有转变,包括与之相关的用户

public function shiftings ()
{
     return $this->belongsToMany(Shifting::class);
}