(int) $record_id, ) )->query()->query_all(); } catch ( Query_Builder_Exception $exception ) { return array(); } } public function set_filters( array $filters ) { parent::set_filters( $filters ); $this->set_record_filter(); $this->set_names_filter(); return $this; } protected function set_record_filter(): Record_Fields_View { $record_id = absint( $this->filters['record_id'] ?? 0 ); if ( empty( $record_id ) ) { return $this; } return $this->add_conditions( array( array( 'type' => Query_Conditions_Builder::TYPE_EQUAL, 'values' => array( 'record_id', $record_id ), ), ) ); } protected function set_names_filter(): Record_Fields_View { $names = (array) ( $this->filters['names'] ?? array() ); if ( empty( $names ) ) { return $this; } return $this->add_conditions( array( array( 'type' => Query_Conditions_Builder::TYPE_IN, 'values' => array( 'field_name', $names ), ), ) ); } /** * @since 2.1.6 https://github.com/Crocoblock/issues-tracker/issues/1436 * @since 2.0.0 Introduced * * @param $record_id * * @return array */ public static function get_request_list( $record_id ): array { $request = static::get_request( $record_id ); return iterator_to_array( RecordTools::iterate_request( $request ) ); } public function query(): Query_Builder { $this->prepare_dependencies(); if ( ! $this->select ) { $this->set_select( Record_Field_Model::schema_columns() ); } return ( new Query_Builder() )->set_view( $this ); } }