You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Laravel Telescope以显示Livewire的查询与请求?

让Laravel Telescope显示Livewire的请求与数据库查询

Telescope默认会过滤掉Livewire组件发起的请求和查询,按以下步骤配置即可让它们显示出来:

1. 调整请求过滤规则

打开项目根目录下的config/telescope.php,找到filter回调函数。默认逻辑会在非本地环境下排除普通Livewire请求,我们需要修改它来包含Livewire请求:

'filter' => function (IncomingEntry $entry) {
    if ($this->app->environment('local')) {
        // 本地环境直接显示所有条目,包括Livewire请求
        return true;
    }

    // 生产环境可按需调整,比如仅保留Livewire的异常/失败请求
    return $entry->isReportableException() ||
           $entry->isFailedRequest() ||
           $entry->isFailedJob() ||
           $entry->isScheduledTask() ||
           $entry->hasMonitoredTag() ||
           // 加入Livewire请求的判断
           ($entry->type === 'request' && isset($entry->content['headers']['livewire']));
},

2. 取消Query监听器对Livewire的忽略

同样在config/telescope.php的watchers数组里,找到QueryWatcher配置项。如果ignore_packages里包含livewire/livewire,把这一项移除:

'QueryWatcher' => [
    'enabled' => env('TELESCOPE_QUERY_WATCHER', true),
    'ignore_packages' => [
        // 移除 'livewire/livewire'(如果存在的话)
    ],
    'ignore_paths' => [],
    'slow' => 100,
],

3. (可选)给Livewire请求打标签

如果想快速筛选Livewire相关条目,可以在app/Providers/TelescopeServiceProvider.php的register方法中添加标签逻辑:

use Laravel\Telescope\Telescope;
use Laravel\Telescope\IncomingEntry;

public function register()
{
    Telescope::tag(function (IncomingEntry $entry) {
        if ($entry->type === 'request' && isset($entry->content['headers']['livewire'])) {
            return ['livewire'];
        }

        return [];
    });
}

配置完成后,刷新Telescope界面就能看到Livewire发起的请求和对应的数据库查询了。

内容的提问来源于stack exchange,提问作者Adrian Cornish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:08:16