当前位置: 首页 > 知识库问答 >
问题:

拉雷维尔。具有关系的模型中的scope()

伏砚
2023-03-14

用户标签

部门表

部门用户表

员额表

user.php

  class user extends Model{

   /**
    * @return mixed
    */
   public function departments(){
     return $this->belongsToMany(Department::class);
   }
}

部门php

  class Department extends Model
  {
   /**
    * @return mixed
    */
   public function users(){
     return $this->belongsToMany(User::class);
   }
}

post.php

class Post extends Model
{
      /**
 * @return mixed
 */
public function users()
{
    return $this->belongsTo(User::class, 'user_id', 'id');
}

/**
 * @return mixed
 */
public function departments()
{
    return $this->belongsTo(Department::class,'department_id', 'id');
}
}

我需要从部门用户获得所有职位

我在邮政局做了调查。php

/**
 * @param $query
 *
 * @return mixed
 */
public function scopePostsUser($query)
{
    $query->whereHas('departments', function ($user){
        $user->where('department_user.department_id',  'posts.department_id');
        $user->where('department_user.user_id',  auth()->id());
    });
}

我的查询

Post::with('departments')->PostsUser();

错误

SQLSTATE[42S22]:未找到列:1054未知列“部门用户”。“where子句”(SQL:选择count(*)中的post_id“作为存在位置的posts中的聚合(在部门id=部门用户部门用户上选择*从部门内部加入部门用户其中发布id部门用户发布id发布id部门用户发布id部门id和部门用户用户id=3))


共有1个答案

庾和昶
2023-03-14

如果我理解正确,您希望所有的职位,属于所有部门的登录用户。因此,要获取登录用户的部门,

$departments = auth()->user()->departments;

然后要得到这些部门的所有职位,

$posts = Post::with('departments')
    ->whereIn('department_id', $departments->pluck('id'))
    ->get();
 类似资料:
  • 我正试图用雄辩加载一个遥远的关系,但遇到了问题。涉及5个表,它们是用户、corporate_users、公司和两个哨兵表(组和users_groups)。 表的设置如下所示: 用户有一个合作用户(一对一) 公司用户归属到公司(多对一) 用户通过users_groups透视表与组建立多对多关系。 所有这些关系都是单独工作的。最初,我可以通过调用

  • 我是新来的laravel和雄辩,我不确定这是否可能。但是我有2张桌子,有一对多的关系。一个是“位置”,一个是“用户”。一个位置可以有许多用户。 所以,如果我想获得所有用户的所有位置,我会这样做: 但是我也想知道每个位置有多少用户,我试着这样做 但那没有奏效。

  • 在Laravel中,有可能把关系放在关系中吗? 我的两个模型: 商店 供应商 我的商店和供应商关系模型: null 正如您所看到的,我有许多商店和供应商,每个都可以通过SupplierStore表相互关联。 这很好用。 我的问题是,对于每一个关系(商店和供应商),可能有许多交货日。 我想如果我进入SupplierStore模型并添加: 会工作,但我似乎没有办法通过雄辩来访问这些数据? 我希望做这样

  • 是否可以在比1级更深的级别上进行具有雄辩能力的多级关系查询?我的桌子是这样的: post_comments- 发表评论或回复- 使用者- 用户数据- 所以我想问是不是有可能得到一个帖子的评论与所有的回复和用户数据的人谁回答了评论1查询与雄辩。 这就是我的评论模型的样子: 当我得到一条评论的所有用户数据时,我想得到回复者的所有用户数据。我真的很抱歉,如果这个问题已经在其他地方发布或记录,但我似乎无法

  • 我在本地运行的Laravel应用程序中有一个登录页面,但在生产服务器上,我收到以下错误消息(Laravel.log) 在应用/存储/视图/8d74d14da5e7fbd7b4984adefddd5a1b中生成的代码是: 有什么想法吗? 谢谢你