[ 'customers.name' => 10, 'orders.reference' => 8, 'products.name' => 5 ], 'joins' => [ 'customers' => ['customers.id', 'orders.customer_id'], 'order_product' => ['orders.id', 'order_product.order_id'], 'products' => ['products.id', 'order_product.product_id'], ], 'groupBy' => ['orders.id'] ]; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'reference', 'courier_id', // @deprecated 'courier', 'customer_id', 'address_id', 'order_status_id', 'payment', 'discounts', 'total_products', 'total', 'tax', 'total_paid', 'invoice', 'label_url', 'tracking_number', 'total_shipping' ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = []; /** * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function products() { return $this->belongsToMany(Product::class) ->withPivot([ 'quantity', 'product_name', 'product_sku', 'product_description', 'product_price', 'product_attribute_id' ]); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function customer() { return $this->belongsTo(Customer::class); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function courier() { return $this->belongsTo(Courier::class); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function address() { return $this->belongsTo(Address::class); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function orderStatus() { return $this->belongsTo(OrderStatus::class); } /** * @param string $term * * @return mixed */ public function searchForOrder(string $term) { return self::search($term); } }