Почему данные из таблицы не отображаются? - PullRequest
0 голосов
/ 10 января 2020

Я использую laravel, максимальное значение из базы данных должно отображаться в моем блоке. Раньше все работало нормально, данные отображались обновленными, но теперь по какой-то причине данные не отображаются.

Мой контроллер с функцией отображения:

    public function bust()
    {
        parent::setTitle('Crash game | ');
        $users = User::count();

$max_x = DB::table('bust_history')->where('created_at', '>=', Carbon::today())->max('bust_number');



        return view('pages.crash', compact('users','max_x'));
    }

Мой вид файл:

<div class="header">
            <div> Max X </div>
            <div class="help"> <small>for last 24 hours</small> </div>
        </div>
        <div class="body ">
            <div style="color:#48B3CD;font-size:45px;position:center;">{{$max_x}}x</div>
        </div>

Вот скриншот из моей БД

И скриншот того, что отображается на сайте: здесь

Кто может сказать мне, в чем может быть проблема?

1 Ответ

1 голос
/ 10 января 2020

[РЕДАКТИРОВАТЬ]

Вы можете увидеть весь процесс отладки ниже и в комментариях. Правильный ответ, причиной ошибки, был тип столбца bust_number. Это был тип VARCHAR, который приводил к неверным результатам при попытке получить максимальное значение. Изменение его на FLOAT или DOUBLE устранило проблему, поскольку этими типами можно манипулировать как числа вместо строк с помощью MySql.


Трудно дать ответ, так как это может быть вызвано многими причинами, но вот общие причины вашей проблемы:

  • Вы используете неверную базу данных или таблица пуста. Пожалуйста, проверьте, чтобы
DB::table('bust_history')->pluck('bust_number');

предоставил вам ожидаемые данные.

  • Существует проблема в PHP или конфигурации Carbon, и Carbon::today(); не совсем сегодня (как я пишу, 2020-01-09 00:00:00). Если все верно,
DB::table('bust_history')->where('created_at', '>=', Carbon::today())->pluck('bust_number');

выдаст вам список bust_number?

Если проблема не устранена и вы предоставите дополнительную информацию после этих проверок, я мог бы отредактировать свой ответьте больше вещей, чтобы проверить. Но по моему опыту вы должны проверить то, что кажется слишком очевидным для проверки. В какой-то момент вы найдете что-то ненормальное.

Кроме того, даже не используйте свое представление, просто dd($max_x); сразу после запроса, так что вы можете быть уверены, что ничто не мешает вашему результату.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...