belongsTo('App\Object'); } public function getThumbnailAttribute() { return $this->images->count() ? $this->images->first()->thumbnail : 'images/no-photo.png'; } public function getPriceAttribute() { $price = 0; if (Request::input('start_date') && Request::input('end_date')) { $start = Carbon::createFromFormat('d.m.Y.', Request::input('start_date')); $end = Carbon::createFromFormat('d.m.Y.', Request::input('end_date')); for ($day = $start; $day < $end; $day->addDay()) { $season_price = Price::where('unit_id', '=', $this->id) ->where('start_date', '<=', $day->toDateString()) ->where('end_date', '>=', $day->toDateString()) ->first(); $season_price ? $price += $season_price->price_day : $price += 0; } } else { $min = $this->prices()->where('end_date', '>=', Carbon::now()->toDateString())->orderBy('price_day')->first(); return $min ? $min->price_day : 0; } return $price; } public function prices() { return $this->hasMany('App\Price'); } public function reservations() { return $this->hasMany('App\Reservation'); } public function getLocalizedRouteKey($locale) { return $this->translateOrNew($locale)->slug; } }