2016-06-09 2 views
-1

Привет, ребята У меня есть этот набор базы данных
Laravel 5 выборки связанных данных с использованием 3 модели

clients(#id,raison_sociale,adresse,)<br> 
delivery(#id,client_id(fk),date_del) <br> 
details(delivery_id(fk),product_id(fk),qt) 
product(id,code,desig,price) 

и вот мои красноречивые отношения

class Client extends Model { 
    public function livraison(){ 
     return $this->hasMany('App\Models\Livraison'); } } 


class Detail extends Model 
     { 
    public function delivery(){ 
    return $this->belongsTo('App\Models\Delivery');}} 


class Livraison extends Model{ 
    public function client(){ 
    return $this->belongsTo('App\Models\Client'); 
    } 
public function detail(){ 
    return $this->hasMany('App\Models\detail'); }} 


  1. Есть ли у меня что-то не так с этими отношениями?
  2. У меня есть страница, где я показываю всю свою доставку, но я не могу найти правильный способ получить эту строку: raison_soc(from client) & date_del(from delivery); и деталь таблица (для каждого клиента, конечно)

ответ

0
use App\Models\Client; 

Client::with('delivery.detail')->get(); 

Я не могу проверить свои отношения, но если вы следуете соглашению об именах ваших отношений должны быть хорошо. Вышеупомянутое позволит получить все детали, которые связаны с доставкой клиентом.

Вы могли бы улучшить свои отношения с методом hasManyThrough Has Many Through

Вы бы сделать что-то вроде этого в классе Client:

public function details(){ 
    return $this->hasManyThrough('App\Models`Details', 'App\Models\Livarasion'); 
} 

Если вы объясните свою 2-ю более четко я могу помочь вам настроить этот , Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы.

+0

Благодарим вас за эзохиширование, но оно только вернуло информацию о клиенте , что я не могу выполнить, это показать доставку и тех, кто их заказал, и подробную информацию о них. теперь – Ayoub

+0

Я сделал DD к результатам, я получил коллекцию о информации о клиенте, и есть также массив отношений о доставке (я думаю, что это сработало, но детали не были включены, и я не знаю, как их показать) – Ayoub

+0

return $ this-> hasMany ('App \ Models \ detail'); }} Деталь неверна, правильно? ваше имя класса Liravision, нет? Это должно исправить это :) – ExohJosh