hasOne('App\LoyaltyCard','lcard_id','lcard_id'); } public function payment() { return $this->hasOne('App\Payment','payment_id','payment_id'); } public function station() { return $this->hasOne('App\Station','station_id','station_id'); } public function scopeSort($query, $field, $order) { switch ($field) { case 'card_number': $query->leftJoin('loyalty_card', 'loyalty_card.lcard_id', '=','ratings.lcard_id'); $query->orderBy('loyalty_card.card_number', $order); break; case 'station': $query->select(DB::raw('ratings.*,description')); $query->leftJoin('station', 'station.station_id', '=','ratings.station_id'); $query->orderBy('station.description', $order); break; case 'invoice': $query->leftJoin('payments', 'payments.payment_id', '=','payments.payment_id'); $query->orderBy('payments.item_number', $order); break; default: return $query->orderBy($field, $order); } } }