2016-11-17 5 views
1

У меня есть модель заказа и модель обслуживания.Laravel withtriedhed в отношениях

Заказ можно удалить (мягкое удаление). Я хочу перечислить все заказы, удаленные и активные, а также сервис, которому он принадлежит.

заказа Модель:

class Order extends Model 
{ 
    use SoftDeletes; 

    protected $dates = ['deleted_at']; 

    public function service() 
    { 
     return $this->belongsTo('Service'); 
    } 
} 

Service Model:

class Service extends Model 
{ 
    public function order() 
    { 
     return $this->belongsToMany('Order'); 
    } 
} 

Что я пробовал:

$company=Company::with('orders.service'=>function ($query) { 
     $query->withTrashed(); 
    },'services'])->where('id',$company->id)->get(); 

Но это не возвращает заказы (и сейчас я только есть 1 удаленный ord er in my db)

Любые идеи?

Спасибо!

ответ

2

вы можете использовать

public function order() { 
    return $this->belongsToMany('Order')->withTrashed(); 
} 
+0

Да, но это все возвратит все удаленные заказы. Что делать, если мне не нужны удаленные заказы на странице? – user3844579

+0

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

1

Прежде всего, belongsToMany отношений всегда идут с другими belongsToMany отношений на другой стороне, так что вы не делаете правильно отношений.

Если вам нужны отношения многих-многих, обе модели должны иметь отношение belongsToMany к другой модели, и у вас должна быть сводная таблица.

Если вы хотите отношения от одного до многих, одна модель должна иметь отношение belongsTo, а другое отношение hasMany.

+0

@ user3844579 Пожалуйста, можете ли вы подтвердить, какие отношения вы хотите? –

+0

Просто изменил его на один на один – user3844579

+0

@ user3844579 Пожалуйста, обновите код вашего вопроса с кроссовками. Кроме того, объясните код, который вы попробовали, и что вы пытаетесь достичь. –

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