Как получить обновленное значение из базы данных вместо значения по умолчанию ? — Laravel, Mysql

#php #mysql #laravel #eloquent #orm

Вопрос:

Я работал над получением данных из базы данных mysql в виде блейда. Итак, у меня в таблице есть поле «total_sold». Ниже приведен мой код

 public function getDealVersions($dealId)
{
    if ($dealId == "undefined") {
        return array('isVersions' => FALSE);
    }

    $deal = Deal::find($dealId);

    Log::info($deal);

    $return = array(
        'deal' => $deal,
        'isVersions' => count($deal->versions) > 1 ? TRUE : FALSE,
        'versions' => $deal->versions
    );

    return $return;
} 
 

В приведенном выше коде $deal содержит результаты запроса mysql, а значение поля total_sold равно 0, что является значением по умолчанию, но фактическое значение в базе данных равно 2352. Значения для всех остальных полей возвращают ожидаемые значения, за исключением этого поля «total_sold». В mysql для поля total_sold,

 type=int(11), Default Value = 0 and Nullable=YES
 

Итак, я не могу понять, должен ли я что-то изменить в своем запросе или мне следует изменить какое-то свойство в mysql. Мы будем очень признательны за любую помощь или совет.

Спасибо!

Комментарии:

1. Запрос вернет то, что находится в выбранной вами строке, а не значение по умолчанию. Значение по умолчанию установлено таким образом, что если вы НЕ передадите значение для этого столбца при первоначальной ВСТАВКЕ строки, mysql поместит это значение для вас.

2. Вероятно, это просто опечатка в вопросе, но Deafult Value она написана неправильно

3. Каждый запрос будет возвращать текущее значение из базы данных, а не значение по умолчанию. Я думаю, вам следует еще раз проверить свою базу данных, а также проверить код, который отвечает за обновление total_sold.

4. Я также не вижу total_sold в коде, который вы указали выше. Не могли бы вы, пожалуйста, поделиться, где вы это устанавливаете и используете?

5. @RiggsFolly Я согласен, и это действительно сильно сбивает меня с толку. Я должен получить всю строку, но она просто возвращает не фактическое значение для поля total_sold, а значение по умолчанию