【问题标题】:Laravel hasManyThrough relation not workingLaravel hasManyThrough 关系不起作用
【发布时间】:2022-01-28 04:44:02
【问题描述】:

假设我有如下所示的三个表,

  1. 项目- ID, 名字

  2. 环境- ID, 项目 ID, environment_id

  3. 部署- ID, 提交哈希

这里,项目 id 和部署 id 存储在环境中。环境和部署对于同一个项目有多行。 如果我有项目 id,laravel 雄辩的关系将如何。

我尝试了以下代码但无法正常工作。 return $this->hasManyThrough(Deployment::class, Environment::class);

提前致谢。

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

    在项目模型中尝试添加此方法,您将获得所有带有环境的部署

    public function deploymentWithEnv()
    {
        return $this->belongsToMany('deployments', 'environments', 'id', 'environment_id');
    }
    

    其次是用户枢轴概念“withpivot”,这将在项目模型中

    public function deploymentWithEnv()
    {
        return $this->belongsToMany(Deployment::class, Environment::class, 
          'project_id', 'environment_id');
    }
    
    public function deployments()
    {
        return $this->belongsToMany(Deployment::class);
    }
    

    最后在控制器中使用“withPivot”

    【讨论】:

      猜你喜欢
      • 2014-05-12
      • 2018-10-18
      • 2023-03-09
      • 2018-07-24
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 2018-03-08
      相关资源
      最近更新 更多