如何在Laravel中编辑传递给事件的变量?

时间:2018-12-15 07:04:49

标签: jquery laravel events broadcast

我想通过从数据库获取路径并将原始图像解码为base64来获取图像的内容,以便不向最终用户公开图像的真实路径。

$user->secret_image = getImage($user->secret_image); // This gets the base64 image of the path passed to it
event(new myEvent($user));

然后我有一个活动要向她/他自己广播更新的数据。但是问题在于它不会将编辑后的数据传递给jQuery中的前端。当我在file_put_contents('myevent.txt', json_encode($user));myEvent时,我看到该文件中的值正确并且图像为base64,但我不知道为什么我无法在jQuery中获得它。请注意,其他数据已正确传递,我可以在jQuery中获取它们,但只有未在其中编辑的参数。

myEvent:

class myEvent implements ShouldBroadcast
{
    public $user;
    public function __construct($user)
    {
        $this->user = $user;
    }
}

jQuery:

window.Echo.channel('my-channel')
    .listen('myEvent', (update) => {
        let user = update.user;
        $('[name="first_name"]').val(user.first_name);
        console.log(user.secret_image);
    });

1 个答案:

答案 0 :(得分:0)

令人惊讶的是,我刚刚将$user从对象更改为数组,它起作用了:|