LAND_STATUS::class 'has_crop' => 'boolean', ]; /** * 获取关联的用户农场 * * @return BelongsTo */ public function farmUser(): BelongsTo { return $this->belongsTo(FarmUser::class, 'user_id', 'user_id'); } /** * 获取关联的土地类型 * * @return BelongsTo */ public function landType(): BelongsTo { return $this->belongsTo(FarmLandType::class, 'land_type', 'id'); } /** * 获取关联的作物 * * @return HasOne */ public function crop(): HasOne { return $this->hasOne(FarmCrop::class, 'land_id', 'id'); } /** * 更新has_crop字段值 * 根据当前状态自动更新has_crop字段 * * @return void */ public function updateHasCrop(): void { $this->has_crop = in_array($this->status, [ LAND_STATUS::PLANTING->value, // 1 种植中 LAND_STATUS::DISASTER->value, // 2 灾害 LAND_STATUS::HARVESTABLE->value, // 3 可收获 LAND_STATUS::WITHERED->value, // 4 枯萎 ]); } }