无法从频道中删除 laravel_database_ 前缀
can't remove laravel_database_ prefix from channel
我正在设置 Laravel 回显来广播事件。但是每当我尝试向频道广播时,频道名称都会自动获得前缀:'laravel_database_'
我尝试将事件中的 return 切换为常规 'Chanel',如下所示:
public function broadcastOn()
{
return new Channel('public');
}
但是当我查看 laravel-echo-server 日志时,我发现它仍在广播:'laravel_database_public'.
这样我需要在我的 JS 中执行以下操作:
Echo.channel('laravel_database_public').listen('MessageSent', ({message}) => {
console.log(message);
});
当然,我想删除前缀(或弄清楚为什么它在那里)。希望有人能帮我解决这个问题。提前致谢。
这可以在 config/database.php
中配置(我相信甚至可以移动)在
下
'redis' => [
'options' => [
'prefix' => // change here.
]
]
已接受的答案不适用于 laravel-echo-server。
解决方案是让整个 Redis Laravel 配置 保持原状 并 运行 版本 ^1.6.0
laravel -echo-server 在 laravel-echo-server.json
配置文件中使用正确的 keyPrefix
选项:
{
"databaseConfig": {
"redis": {
"keyPrefix": "laravel_database_"
}
}
}
与 Laravel 7 相比,config/database.php
看起来像这样
'redis' => [
'client' => env('REDIS_CLIENT', 'predis'),
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'),
],
]
因此它会在 .env
文件中搜索您的 REDIS_PREFIX
变量,如果有 none,则它会生成 laravel_database_
或根据您设置的任何内容 APP_NAME
到您的 .env
文件中。
您只需设置 REDIS_PREFIX
。您可以将其留空,这样就完全没有前缀了。
我正在设置 Laravel 回显来广播事件。但是每当我尝试向频道广播时,频道名称都会自动获得前缀:'laravel_database_'
我尝试将事件中的 return 切换为常规 'Chanel',如下所示:
public function broadcastOn()
{
return new Channel('public');
}
但是当我查看 laravel-echo-server 日志时,我发现它仍在广播:'laravel_database_public'.
这样我需要在我的 JS 中执行以下操作:
Echo.channel('laravel_database_public').listen('MessageSent', ({message}) => {
console.log(message);
});
当然,我想删除前缀(或弄清楚为什么它在那里)。希望有人能帮我解决这个问题。提前致谢。
这可以在 config/database.php
中配置(我相信甚至可以移动)在
'redis' => [
'options' => [
'prefix' => // change here.
]
]
已接受的答案不适用于 laravel-echo-server。
解决方案是让整个 Redis Laravel 配置 保持原状 并 运行 版本 ^1.6.0
laravel -echo-server 在 laravel-echo-server.json
配置文件中使用正确的 keyPrefix
选项:
{
"databaseConfig": {
"redis": {
"keyPrefix": "laravel_database_"
}
}
}
与 Laravel 7 相比,config/database.php
看起来像这样
'redis' => [
'client' => env('REDIS_CLIENT', 'predis'),
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'),
],
]
因此它会在 .env
文件中搜索您的 REDIS_PREFIX
变量,如果有 none,则它会生成 laravel_database_
或根据您设置的任何内容 APP_NAME
到您的 .env
文件中。
您只需设置 REDIS_PREFIX
。您可以将其留空,这样就完全没有前缀了。