Не работает функция по примеру, помогите

242
28 января 2019, 17:50

Здраствуйте, суть проблемы в том, что я не могу получить значение функции getActive(), исходящей объекта $brand в коде:

Код Маппера

    public function update($brand) {
    if ( !($brand instanceof Brand) ) {
        $this->errors[] = 'Передан объект не класса Brand.';
        return false;
    }
    try {
        $f = $brand->getLogoFilename();
        $query = 'UPDATE `brands` '
               . 'SET `name` = :name, `active` = :active'
               . (!is_null($f) ? ', `logofilename` = :logofilename ' : ' ')
               . 'WHERE `ID` = :ID';
        $stmt = $this->db->prepare($query);
        $stmt->bindValue(':ID', $brand->getID());
        $stmt->bindValue(':name', $brand->getName());
            $stmt->bindValue(':active', $brand->getActive());
        if (!is_null($f)) {$stmt->bindValue(':logofilename', $f);}
        $stmt->execute();
        if ($stmt->rowCount() != 1) {
            $this->errors[] = 'Ошибка обновления информации в базе.';
            return false;
        }
    } catch (\PDOException $e) {
        if ($e->getCode() == '23000') {
            // вставка невозможна из-за дублирования названия (`name` это уникальный ключ)
            $this->errors[] = 'Название марки уже есть в базе.';
            return false;
        }
        throw $e;
    }
    return true;
}

Сама функция выглядит ровно так же, как и функция получения имени и картинки предполагаемого бренда, однако они работают, а нужная - нет:

public function getName() {
    return $this->name;
}
public function getActive() {
    return $this->active;
}
public function getLogoFilename() {
    return $this->logofilename;
}

Даже не знаю, что ещё предоставить Спасибо

Answer 1

Попробуйте добавить PDO::PARAM_BOOL

$stmt->bindValue(':active', $brand->getActive(), PDO::PARAM_BOOL);
READ ALSO
Пропала цена на страницах товара Woocommerce

Пропала цена на страницах товара Woocommerce

Пропала цена товара на карточках товараКак на вариациях, так и без

247
Фильтрация многомерного массива

Фильтрация многомерного массива

есть многомерный массив вида

249
Указатели. Ошибка

Указатели. Ошибка

значение типа const char нельзя использовать для инициализации сущности типа char

834
Отсутствует оператор [закрыт]

Отсутствует оператор [закрыт]

Отсутствует оператор ">>" соответствующий этим операндам

526