accessory relationship * * @author [A. Kroeger] * * @since [v7.0.9] * * @return Relation */ public function component() { return $this->belongsTo(Component::class)->withTrashed(); } public function components() { return $this->hasMany(Component::class, 'id', 'component_id')->withTrashed(); } public function assets() { return $this->hasMany(Asset::class, 'id', 'asset_id')->withTrashed(); } /** * Establishes the accessory checkout -> user relationship * * @author [A. Kroeger] * * @since [v7.0.9] * * @return Relation */ public function adminuser() { return $this->belongsTo(User::class, 'created_by')->withTrashed(); } public function scopeOrderByCreatedByName($query, $order) { return $query->leftJoin('users as checkout_users_sort', 'components_assets.created_by', '=', 'checkout_users_sort.id')->select('components_assets.*')->orderBy('checkout_users_sort.first_name', $order)->orderBy('checkout_users_sort.last_name', $order); } public function scopeOrderByComponentName($query, $order) { return $query->leftJoin('components as component_sort', 'components_assets.id', '=', 'component_sort.id')->select('components_assets.*')->orderBy('component_sort.name', $order); } }