Php 如何质疑Laravel 5.1雄辩

Php 如何质疑Laravel 5.1雄辩,php,laravel,eloquent,laravel-5.1,Php,Laravel,Eloquent,Laravel 5.1,我有一个项目表和一个项目表。租金表是中间的雄辩。它显示了什么项目租用或使用了什么项目。如何检索一个项目和使用的所有项目,而不必在结果中包含租金 模式: 计划 public function rents() { return $this->hasMany('App\Rent'); } 项目 租 感谢您的期待。为了实现您想要的目标,您需要使用不同的关系hasManyThrough,只需按以下方式调整您的项目模型: <?php namespace App; use Illu

我有一个项目表和一个项目表。租金表是中间的雄辩。它显示了什么项目租用或使用了什么项目。如何检索一个项目和使用的所有项目,而不必在结果中包含租金

模式:

计划

public function rents()
{
    return $this->hasMany('App\Rent');
}
项目


感谢您的期待。

为了实现您想要的目标,您需要使用不同的关系
hasManyThrough
,只需按以下方式调整您的
项目
模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Project extends Model
{
    public function items()
    {
      return $this->hasManyThrough('App\Item','App\Rent');
    }
}

问题出在哪里?我正在尝试获取所有租用项目的项目,但似乎无法获得正确的结果。您将如何共享您的DB设计方案?@MinaAbadir I jus编辑了这个问题,方案图像有一个链接。敬请告知。项目和项目表中的外键是什么?这不起作用。我早就试过了。原因是该项没有列项目id。该项与项目完全不相关。唯一的共同点是在一张桌子上。如果您认为我仍然错了,请进一步说明解决方案。
hasManyThrough
关系正是您要寻找的,它将通过中间表获得关系。在这种情况下,中间表是租金表。因此,可以使用此关系将项目->租金->项目转换为项目->项目。你确定,你真的尝试了这种关系,你得到了什么错误?我用这种方法得到了错误“column not found”(列未找到)。它正在从项目中查找租金id。查询将projects和rents on projects.id=rents.projects\u id联接,然后尝试将rents.id联接到items.rents\u id,在这种情况下,查询失败,因为它不存在。您是正确的,它将不起作用。我仔细检查了文件,不是给你的。我会更新我的答案。
 public function project()
   {
   return $this->belongsTo('Project');
   }
   public function item()
   {
        return $this->belongsTo('App\Item');
   }
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Project extends Model
{
    public function items()
    {
      return $this->hasManyThrough('App\Item','App\Rent');
    }
}