yii\db\BaseActiveRecord::populateRecord PHP Method

populateRecord() public static method

This is an internal method meant to be called to create active record objects after fetching data from the database. It is mainly used by ActiveQuery to populate the query results into active records. When calling this method manually you should call BaseActiveRecord::afterFind on the created record to trigger the [[EVENT_AFTER_FIND|afterFind Event]].
public static populateRecord ( BaseActiveRecord $record, array $row )
$record BaseActiveRecord the record to be populated. In most cases this will be an instance created by [[instantiate()]] beforehand.
$row array attribute values (name => value)
    public static function populateRecord($record, $row)
    {
        $columns = array_flip($record->attributes());
        foreach ($row as $name => $value) {
            if (isset($columns[$name])) {
                $record->_attributes[$name] = $value;
            } elseif ($record->canSetProperty($name)) {
                $record->{$name} = $value;
            }
        }
        $record->_oldAttributes = $record->_attributes;
    }

Usage Example

Example #1
0
 /**
  * @inheritdoc
  */
 public static function populateRecord($record, $row)
 {
     $columns = static::getTableSchema()->columns;
     foreach ($row as $name => $value) {
         if (isset($columns[$name])) {
             $row[$name] = $columns[$name]->phpTypecast($value);
         }
     }
     parent::populateRecord($record, $row);
 }
All Usage Examples Of yii\db\BaseActiveRecord::populateRecord