TargetObject.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace app\models\entity\ar;
  3. use yii\db\ActiveRecord;
  4. /**
  5. * @property int id
  6. * @property string name
  7. * @property string name_display
  8. * @property float size_x
  9. * @property float size_y
  10. * @property float size_z
  11. * @property string imageA (base64)
  12. * @property string imageB (base64)
  13. * @property string imageC (base64)
  14. * @property string imageD (base64)
  15. * @property string imageE (base64)
  16. * @property string imageF (base64)
  17. * @property int $angleA [int(11)]
  18. * @property int $angleB [int(11)]
  19. * @property int $angleC [int(11)]
  20. * @property int $angleD [int(11)]
  21. * @property int $angleE [int(11)]
  22. * @property int $angleF [int(11)]
  23. * @property int status
  24. * @property string $target_name_xml [varchar(255)]
  25. * @property string $type
  26. * @property-read Stage[] $stages
  27. */
  28. class TargetObject extends ActiveRecord
  29. {
  30. /**
  31. * {@inheritdoc}
  32. */
  33. public static function tableName()
  34. {
  35. return 'ar_targetobjects';
  36. }
  37. /**
  38. * {@inheritdoc}
  39. */
  40. public function attributeLabels()
  41. {
  42. return [
  43. 'id' => 'ID',
  44. 'name' => 'Имя объекта',
  45. 'name_display' => 'Заголовок',
  46. 'size_x' => 'Координата x',
  47. 'size_y' => 'Координата y',
  48. 'size_z' => 'Координата z',
  49. 'imageA' => 'Изображение А',
  50. 'imageB' => 'Изображение B',
  51. 'imageC' => 'Изображение C',
  52. 'imageD' => 'Изображение D',
  53. 'imageE' => 'Изображение E',
  54. 'imageF' => 'Изображение F',
  55. 'angleA' => 'Угол A',
  56. 'angleB' => 'Угол B',
  57. 'angleC' => 'Угол C',
  58. 'angleD' => 'Угол D',
  59. 'angleE' => 'Угол E',
  60. 'angleF' => 'Угол F',
  61. 'status' => 'Статус',
  62. 'target_name_xml' => 'Имя из xml файла',
  63. 'type' => 'Тип'
  64. ];
  65. }
  66. public function fillFromArray(array $params)
  67. {
  68. foreach ($params as $key => $value) {
  69. $this->$key = $params[$key];
  70. }
  71. $this->status = $params['status'] ?? 1;
  72. }
  73. public function asArray()
  74. {
  75. $targetObject = [];
  76. foreach ($this->fields() as $fieldName) {
  77. $targetObject[$fieldName] = $this->$fieldName;
  78. }
  79. return $targetObject;
  80. }
  81. public function getStages()
  82. {
  83. $this->hasOne(Stage::class, ['object_id' => 'id']);
  84. }
  85. }