首页 > 解决方案 > 未定义的属性:App\Http\Controllers\PostController::$p

问题描述

我的控制器看起来像

 public function react(Request $request){
        //echo "hi";
        //return;
        //return response()->json($request);
        $this->validate($request, [
            'postid' => 'required',
            'react' => 'required'
        ]);
        $reaction = Reaction::firstOrNew([
            'post_id'=>$request->postid,
            'user_id'=> Auth::id()
        ]);
        $reaction->user_id = Auth::id();
        $reaction->type = $request->react;
        $reactType = "";
        if ($request->react === "l"){$reactType = "liked";}
        else if ($request->react === "d"){$reactType = "disliked";}
        else if ($request->react === "h"){$reactType = "loved";}
        else if ($request->react === "s"){$reactType = "Smiled";}
        else{}



        $post = Post::find($request->postid);
        $postuser = $post->user->name;

        if($post->reactions()->save($reaction)){
            $data['message'] = Auth::user()->name.' '.$reactType. ' a Post from' . $postuser;
            $data['type'] = 'reaction';
            **$this->p->trigger('user-'.$post->user_id, 'new-post', $data);**
            return response()->json([
                'success' => true,
                'message' => 'Reacted'
            ]);
        }
        else{
            return response()->json([
                'success' => false,
                'message' => 'Error'
            ]);
        }

并且我无法链接到 PUSHER CHANNEL 但我不断收到错误消息

未定义的属性:App\Http\Controllers\MyController::$p

我究竟做错了什么?非常感谢任何可能的帮助!

标签: phplaravelpusherlaravel-controller

解决方案


property $this->p (p) , 你还没有设置值

$this->p = Value ;

设置好后,就可以使用信息了。

$this->p->trigger('user-'.$post->user_id, 'new-post', $data);

在上面写的代码中,$this->p有一个空值

$this->null->trigger('user-'.$post->user_id, 'new-post', $data);

事实上,这就是你使用它的方式


推荐阅读