多对多关联怎么无条件得到所有数据?
// 用户
class User extends Model
{
public int $id;
public int $type; // 1正常,2会员
public string $name;
public function nodes(){
if ($this->type == 2) {
// 这里当用户类型是2的时候,怎么返回所有节点
return [];
} else {
// 多对多关联
return $this->belongsToMany(Node::class);
}
}
}
// 节点
class Node extends Model
{
public int $id;
public string $name;
}
// 中间表
class UserNode extends Model
{
public int $id;
public int $user_id;
public int $node_id;
}
上面我定义了三个模型(举例子用的),主要是想知道,当用户类型为 2,即会员的时候,怎么得到所有的节点???
如果用户类型是 1 的时候,返回的是 \Illuminate\Database\Eloquent\Relations\BelongsToMany
类型。
那么如果用户类型是 2 的时候,怎么做也可以返回这个类型,但是数据是节点表里的所有数据,相当于表链接查询的时候没有条件?
推荐文章: