FarmUser.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace App\Module\Farm\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  5. use Illuminate\Database\Eloquent\Relations\HasMany;
  6. /**
  7. * 用户农场信息模型
  8. * field start
  9. * @property int $id 主键ID
  10. * @property int $user_id 用户ID
  11. * @property int $house_level 房屋等级
  12. * @property string $last_upgrade_time 最后升级时间
  13. * @property \Carbon\Carbon $created_at 创建时间
  14. * @property \Carbon\Carbon $updated_at 更新时间
  15. * field end
  16. *
  17. *
  18. * @property-read \App\Module\Farm\Models\FarmLand[] $lands 用户的土地
  19. * @property-read \App\Module\Farm\Models\FarmGodBuff[] $buffs 用户的神灵加持
  20. * @property-read \App\Module\Farm\Models\FarmHouseConfig $houseConfig 用户房屋等级对应的配置
  21. */
  22. class FarmUser extends Model
  23. {
  24. /**
  25. * 与模型关联的表名
  26. *
  27. * @var string
  28. */
  29. protected $table = 'farm_users';
  30. /**
  31. * 可批量赋值的属性
  32. *
  33. * @var array
  34. */
  35. protected $fillable = [
  36. 'user_id',
  37. 'house_level',
  38. 'last_upgrade_time',
  39. ];
  40. /**
  41. * 应该被转换为日期的属性
  42. *
  43. * @var array
  44. */
  45. protected $dates = [
  46. 'last_upgrade_time',
  47. 'created_at',
  48. 'updated_at',
  49. ];
  50. /**
  51. * 获取用户的土地
  52. *
  53. * @return HasMany
  54. */
  55. public function lands(): HasMany
  56. {
  57. return $this->hasMany(FarmLand::class, 'user_id', 'user_id');
  58. }
  59. /**
  60. * 获取用户的神灵加持
  61. *
  62. * @return HasMany
  63. */
  64. public function buffs(): HasMany
  65. {
  66. return $this->hasMany(FarmGodBuff::class, 'user_id', 'user_id');
  67. }
  68. /**
  69. * 获取用户房屋等级对应的配置
  70. *
  71. * @return BelongsTo
  72. */
  73. public function houseConfig(): BelongsTo
  74. {
  75. return $this->belongsTo(FarmHouseConfig::class, 'house_level', 'level');
  76. }
  77. }