Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel通知未在没有任何错误的情况下广播?_Php_Laravel_Pusher_Laravel Echo - Fatal编程技术网

Php Laravel通知未在没有任何错误的情况下广播?

Php Laravel通知未在没有任何错误的情况下广播?,php,laravel,pusher,laravel-echo,Php,Laravel,Pusher,Laravel Echo,我正在尝试用Laravel和Vue JS实现一个通知系统。我实现了所有东西,它需要工作,但通知类并没有广播 .env文件 BROADCAST_DRIVER=pusher PUSHER_APP_ID=40xxxx PUSHER_KEY=5a6axxxxxx PUSHER_SECRET=b35xxxxxx 已运行以下命令: npm install --save laravel-echo pusher-js composer require pusher/pusher-php-server "~2.

我正在尝试用Laravel和Vue JS实现一个通知系统。我实现了所有东西,它需要工作,但通知类并没有广播

.env文件

BROADCAST_DRIVER=pusher
PUSHER_APP_ID=40xxxx
PUSHER_KEY=5a6axxxxxx
PUSHER_SECRET=b35xxxxxx
已运行以下命令:

npm install --save laravel-echo pusher-js
composer require pusher/pusher-php-server "~2.6"
在app.js中(未注释)

BroadcastServiceProvider.php

Broadcast::channel('App.User.*', function ($user, $userID) {
            return (int) $user->id === (int) $userID;
        });
bootstrap.js

import Echo from "laravel-echo"
 window.Pusher = require('pusher-js');
 window.Echo = new Echo({
    broadcaster: 'pusher',
    key: '5a6axxxxxx',
    cluster: 'eu',
    encrypted: true,
    authEndpoint: "/broadcasting/auth"
 });
 window.Pusher.log = function(message){
    window.console.log(message);
 }
 window.Echo.private('App.User.1')
    .notification((notification) => {
        console.log(notification.type);
 });

Laravel日志中没有错误。同时,我只在Pusher的调试控制台上检查连接和断开连接请求。为什么它没有引发任何类型的错误,为什么它不能正常工作?

我也有同样的问题。在我的例子中,问题的原因是
User
模型按名称空间
App\Models\User
放置。 解决此问题的第一种方法是:

在BroadcastServiceProvider.php或routes/channels.php中(如果是laravel 5.7+)

解决此问题的第二种方法是:

用户中
模型添加方法

public function receivesBroadcastNotificationsOn() {
    return 'users.'.$this->id;
}
以及在BroadcastServiceProvider.php或routes/channels.php中(如果是laravel 5.7+)


你的Javascript在哪里?更新了问题。对不起,我忘了添加它们,我有同样的问题。你是怎么解决你的问题的?我也有同样的问题。
Broadcast::channel('App.Models.User.*', function ($user, $userID) {
    return (int) $user->id === (int) $userID;
});
public function receivesBroadcastNotificationsOn() {
    return 'users.'.$this->id;
}
Broadcast::channel('users.{user_id}', function ($user, $id) {
    return (int) $user->id === (int) $id;
});