Warning в waModel Исправлено

1

Может я что-то упускаю, но в примере из документации дан следущий код обновления записи в таблице:

$model->updateByField('name', 'John', 'Johnny'); //в поле 'name' значения 'John' заменить на 'Johnny'

Сам метод выглядит так (его начало):

public function updateByField($field, $value, $data = null, $options = null, $return_object = false)
    {
        if (is_array($field)) {
            $return_object = $options;
            $options = $data;
            $data = $value;
            $value = false;
        }
        $where = $this->getWhereByField($field, $value);

        $values = array();
        foreach ($data as $f => $value) {
            if (isset($this->fields[$f])) {
                $values[] = $this->escapeField($f)." = ".$this->getFieldValue($f, $value);
            }
        }

Т.е. 'Johnny' попадает в переменную $data, которая без проверки на is_array скармливается foreach, что вызывает warning:

PHP Warning: Invalid argument supplied for foreach() in /home/somesecretpath/www/wa-system/database/waModel.class.php on line 408

1 комментарий

Добавить комментарий

Чтобы добавить комментарий, зарегистрируйтесь или войдите