BaseType::class, ]; protected $fillable = [ 'type', 'name', 'person', 'address', 'address_lat', 'address_lng', 'description', 'map', 'areas', 'workforce', 'parent_id', 'cultivated', 'sort', 'extends', 'industry_key','is_blank','blank_url', ]; public function parent(){ return $this->belongsTo(self::class, 'parent_id'); } public function scopeBase($q) { return $q->where('type', BaseType::Base); } public function scopeTown($q) { return $q->where('type', BaseType::Town); } public function scopeSort($q) { return $q->orderBy('sort', 'desc')->orderBy('created_at', 'desc'); } public function crops() { return $this->belongsToMany(Crop::class, 'base_crops', 'base_id', 'crop_id'); } public function yieldLogs() { return $this->hasMany(CropYield::class, 'base_id'); } public function devices() { return $this->hasMany(Device::class, 'agricultural_base_id'); } public function industry(){ return $this->belongsTo(Keywords::class, 'industry_key', 'key'); } }