1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- namespace App\Models;
- use Illuminate\Database\Eloquent\Model;
- use App;
- class Product extends Model
- {
- protected $guarded = ['choice_attributes'];
- protected $with = ['product_translations', 'taxes'];
- public function getTranslation($field = '', $lang = false)
- {
- $lang = $lang == false ? App::getLocale() : $lang;
- $product_translations = $this->product_translations->where('lang', $lang)->first();
- return $product_translations != null ? $product_translations->$field : $this->$field;
- }
- public function product_translations()
- {
- return $this->hasMany(ProductTranslation::class);
- }
- public function category()
- {
- return $this->belongsTo(Category::class);
- }
- public function brand()
- {
- return $this->belongsTo(Brand::class);
- }
- public function user()
- {
- return $this->belongsTo(User::class);
- }
- public function orderDetails()
- {
- return $this->hasMany(OrderDetail::class);
- }
- public function reviews()
- {
- return $this->hasMany(Review::class)->where('status', 1);
- }
- public function wishlists()
- {
- return $this->hasMany(Wishlist::class);
- }
- public function stocks()
- {
- return $this->hasMany(ProductStock::class);
- }
- public function taxes()
- {
- return $this->hasMany(ProductTax::class);
- }
- public function flash_deal_product()
- {
- return $this->hasOne(FlashDealProduct::class);
- }
- public function bids()
- {
- return $this->hasMany(AuctionProductBid::class);
- }
- public function scopePhysical($query)
- {
- return $query->where('digital', 0);
- }
- public function seller_spread_package_payment()
- {
- return $this->belongsTo(SellerSpreadPackagePayment::class);
- }
- }
|