✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Як реєструвати запит у Laravel

12

Ви хочете надрукувати запит у Laravel? Або іншими словами, ви хочете реєструвати запити в Laravel? Обидва питання мають дещо різні відповіді. Для друку запиту ви можете просто роздрукувати останній виконаний запит і відобразити його у браузері. Але я б рекомендував вам реєструвати запит у Laravel. Роблячи це, усі ваші запити зберігатимуться у файлі журналу, і ви зможете переглянути його будь-коли.

У цій статті я покажу вам обидва варіанти, які допомагають користувачеві переглядати запити у своїй програмі Laravel.

Коли ви розробляєте додаток Laravel, іноді ви можете зіткнутися з ситуацією, коли вам потрібно перевірити, чи правильний написаний запит чи ні. Це пов’язано з кількома причинами – можливо, користувачі не отримують очікуваного результату, ви отримуєте повільну реакцію від сервера баз даних або ви не отримуєте жодного результату як щось не так із вашим запитом тощо. У всіх цих сценаріях якщо ви реєструєте запит, це допоможе налагодити проблему.

Як надрукувати запит у Laravel?

Друк останнього виконаного запиту – це одноразовий процес. Можливо, вам доведеться просто надрукувати ваш запит у браузері. Він ніде не зберігає запит. Нижче наведено простий приклад друку вашого запиту в Laravel.

DB::enableQueryLog();
$arr_user = DB::table('users')->select('name', 'email as user_email')->get();
dd(DB::getQueryLog());

Тут я використав два твердження DB::enableQueryLog()та dd(DB::getQueryLog()). Перший оператор дозволяє вести журнал запитів, тоді як другий оператор фактично друкує цей журнал у браузері. Ця техніка налагодження також працює з Laravel Eloquent.

Можна використовувати цей метод, якщо вони не хочуть реєструвати запити. Але, як було сказано раніше, насправді це не зручний спосіб. Тому що, якщо ви дотримуєтесь цієї техніки, вам потрібно повторити ці два твердження DB::enableQueryLog()та dd(DB::getQueryLog())для кожного запиту.

Кращим варіантом є реєстрація всіх запитів у файлі журналу.

Запит журналу в Laravel

Я рекомендую техніку реєстрації запитів у Laravel. Це більш простий і зручний спосіб для розробників. Вам не потрібно переходити до місця кожного запиту та писати код для реєстрації.

Натомість вам потрібно лише відредагувати, AppServiceProvider.phpі все готово.

Відкрийте app/Providers/AppServiceProvider.phpфайл і додайте 2 фасади для "Файл" і "БД" наступним чином.

use IlluminateSupportFacadesFile;
use IlluminateSupportFacadesDB;

Далі в boot()методі напишіть код нижче, який буде реєструвати всі ваші запити Laravel у фоновому режимі.

public function boot()
{
    if(env('APP_DEBUG')) {
        DB::listen(function($query) {
            File::append(
                storage_path('/logs/query.log'),
                $query->sql. ' ['. implode(', ', $query->bindings). ']'. PHP_EOL
           );
        });
    }
}

Тепер кожного разу, коли виконується запит, він автоматично реєструється у storage/logs/query.logфайлі. Користувач може безпосередньо переглядати свої запити в цьому query.logфайлі.

У Laravel доступний ще один спосіб реєстрації запитів. Таким чином, ваші журнали запитів зберігаються у storage/logs/laravel.logфайлі. Для цього вам потрібно розмістити наведений нижче код у своєму routes/web.phpфайлі.

DB::listen(function($sql) {
    Log::info($sql->sql);
    Log::info($sql->bindings);
    Log::info($sql->time);
});

Це воно! Тепер вам потрібно використовувати будь-який із наведених вище методів для реєстрації запитів. Не потрібно одночасно використовувати обидва методи.

Вся справа в реєстрації запитів у Laravel. Сподіваюся, ця стаття буде корисною для вашої програми. Будь ласка, поділіться своїми думками та пропозиціями в розділі коментарів нижче.

Пов’язані статті

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі