Телескоп получает пустые ответы, хотя в базе данных есть записи, которые он должен отображать - PullRequest
0 голосов
/ 03 августа 2020

Телескоп не отображает никаких записей из таблицы telescope_entries, но вместо этого показывает только это:

Если мы заглянем в консоль браузера, мы увидим, что Telescope часто отправляет POST-запросы к своему API, но получает пустой массив записей:

Я уверен, что в базе данных есть записи, потому что я могу видеть их с помощью программы просмотра базы данных:

Также, когда я запускаю DB::table("telescope_entries")->get() в Tinker, я получаю правильные записи из базы данных.

В целях отладки я добавил lad([$request, $storage]); перед оператором return в методе index в EntryController:

public function index(Request $request, EntriesRepository $storage)
{
    lad([$request, $storage]); // function comes from lanin/laravel-api-debugger
    return response()->json([
        'entries' => $storage->get(
            $this->entryType(),
            EntryQueryOptions::fromRequest($request)
        ),
        'status' => $this->status(),
    ]);
}

Теперь, когда браузер отправляет запрос в API Telescope, он получает следующее JSON:

{
    "entries": [],
    "status": "enabled",
    "debug": {
        "database": {
            "total": 1,
            "items": [
                {
                    "connection": "sqlite",
                    "query": "select * from \"telescope_entries\" where \"type\" = 'request' and \"should_display_on_index\" = '1' order by \"sequence\" desc limit 50;",
                    "time": 7.68
                }
            ]
        },
        "cache": {
            "hit": {
                "keys": [],
                "total": 0
            },
            "miss": {
                "keys": [
                    "telescope:dump-watcher",
                    "telescope:pause-recording"
                ],
                "total": 2
            },
            "write": {
                "keys": [],
                "total": 0
            },
            "forget": {
                "keys": [],
                "total": 0
            }
        },
        "profiling": [
            {
                "event": "request-time",
                "time": 0.6450369358062744
            }
        ],
        "memory": {
            "usage": 16327024,
            "peak": 16547112
        },
        "dump": [
            [
                {
                    "attributes": {},
                    "request": {},
                    "query": {},
                    "server": {},
                    "files": {},
                    "cookies": {},
                    "headers": {}
                },
                {}
            ]
        ]
    }
}

Когда я запускаю оператор SQL, указанный выше в моем средстве просмотра базы данных я получаю записи, которые должен получать:

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

Я застрял в этом, так как я впервые начал с Laravel, и буквально я не могу этого сделать что-нибудь об этом. Я разместил проблему на GitHub Telescope, но она была закрыта, потому что «Это сработало для кого-то другого».

Шаги, которые я предпринял для воссоздания этой проблемы:

Установить переменную DB_CONNECTION в файле .env на sqlite Создан новый файл с именем database.sqlite в папке /database Выполнить команды:
  1. composer require laravel/telescope
  2. php artisan telescope:install
  3. php artisan migrate

Кроме того, я не в производстве и я не сделал ничего больше, чем указано выше. Телескоп также не работает для меня, если я использую проект, созданный кем-то другим, но для этого человека он работает.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 04 августа 2020

Решение этой проблемы - запустить Laravel на Homestead. Мне, наверное, не хватает какой-то посылки, я слишком устал, чтобы разбираться. Я могу порекомендовать учебник, который я использовал для его запуска:

https://www.youtube.com/watch?v=n2RAArt1GRI

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