2015-12-15 3 views
1

У меня есть таблица проектов и таблица элементов. Таблица ренты является средним красноречием. Он показывает, какой проект арендовал или использовал какой предмет. Как я могу получить проект и все используемые элементы, не обязательно используя арендную плату в результате.Как запросить Laravel 5.1 Eloquent

схемы:

enter image description here

Проекты

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

Предметы

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

Арендная плата

public function project() 
    { 
    return $this->belongsTo('Project'); 
    } 
    public function item() 
    { 
     return $this->belongsTo('App\Item'); 
    } 

Благодарим вас в ожидании.

+0

, что это проблема? –

+0

Я пытаюсь получить проекты со всеми арендованными предметами, похоже, не получится так или иначе – Dekoy

+0

Не могли бы вы поделиться своей схемой проектирования БД? –

ответ

2

Для того, чтобы достичь того, что вы ищете, вы должны использовать различные отношения hasManyThrough, просто настроить Project модели, как показано ниже:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

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

это не сработает. Я попробовал это раньше. причина в том, что элемент не имеет столбца project_id. элемент вообще не связан с проектами. единственная общая земля находится на арендной плате. Pls пролил больше света на решение, если вы думаете, что я по-прежнему ошибаюсь – Dekoy

+0

Отношение 'hasManyThrough' - это именно то, что вы ищете, оно получит отношение через промежуточную таблицу. В этом случае промежуточная таблица представляет собой таблицу ренты. Таким образом, объекты Project-> rents-> могут быть переведены в Project-> элементы, используя эту взаимосвязь. Вы уверены, что вы действительно пробовали эти отношения, какую ошибку вы получили? –

+0

У меня ошибка «столбец не найден» с таким подходом – Dekoy

Смежные вопросы