FieldType::SINGLE_LINE_TEXT, self::FIELD_STATUS => FieldType::DROP_DOWN, self::FIELD_CUSTOMER_NAME => FieldType::SINGLE_LINE_TEXT, self::FIELD_CUSTOMER_NAME_KANA => FieldType::SINGLE_LINE_TEXT, self::FIELD_PHONE_NO => FieldType::SINGLE_LINE_TEXT, self::FIELD_ADDRESS => FieldType::SINGLE_LINE_TEXT, self::FIELD_EMAIL => FieldType::SINGLE_LINE_TEXT, self::FIELD_USE_START_DATE => FieldType::DATE, self::FIELD_VEHICLE_NO => FieldType::SINGLE_LINE_TEXT, self::FIELD_PAYMENT_METHOD => FieldType::DROP_DOWN, self::FIELD_ENTRY_DATETIME => FieldType::DATETIME, self::FIELD_PLAN_NAME => FieldType::SINGLE_LINE_TEXT, self::FIELD_SEASON_TICKET_PLAN_NAME => FieldType::SINGLE_LINE_TEXT, self::FIELD_AMOUNT => FieldType::NUMBER, self::FIELD_FIRST_MONTH_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER, self::FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER, self::FIELD_DEPOSIT_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER, self::FIELD_FIRST_PAYMENT_DONE => FieldType::CHECK_BOX, self::FIELD_SEASON_TICKET_CONTRACT_RECORD_NO => FieldType::NUMBER, ]; protected const FIELD_NAMES = [ ...parent::FIELD_NAMES, self::FIELD_PARKING_NAME => 'parking_name', self::FIELD_CUSTOMER_NAME => 'customer_name', self::FIELD_PLAN_NAME => 'plan_name', self::FIELD_ENTRY_DATETIME => 'entry_datetime', self::FIELD_PHONE_NO => 'phone_no', self::FIELD_ADDRESS => 'address', self::FIELD_CAR_AMOUNT => 'car_amount', ]; public function getParking(): Parking { return Parking::findByParkingName($this->parkingName); } public function getPlan(): ?SeasonTicketContractPlan { if (!$this->planName) { return null; } return SeasonTicketContractPlan::findByName($this->seasonTicketPlanName); } public function getSeasonTicketContract(): ?SeasonTicketContract { if (!$this->seasonTicketContractRecordNo) { return null; } return SeasonTicketContract::find($this->seasonTicketContractRecordNo); } }