我怎样才能停止向自己发送通知?

How can I stop sending Notification to myself?

当我喜欢我自己的 post 我会收到通知,这不应该发生,

现在我想要的是通知不应该保存在数据库中,如果我自己喜欢的话post,

我的控制器:

    public function store(Request $request,$id)
    {
    $like = new Like();
    $like->user_id =Auth::user()->id;
    $like->post_id = $id;
    if($like->save())
    {
        if (Auth::user()->id != $id)
        {
            $user = User::findOrFail($request->get('user_id'));
            Notification::send($user , new likePost($like));
            $data = auth()->user()->name.'Liked Your Post '.'<Strong>'.$request->input('title').'</strong'.'<\br>'.'On'.Carbon::now();
            StreamLabFacades::pushMessage('test' , 'likePost' , $data);
        }
    }

您的第二个参数 ($id) 指的是 post ID。

您是说如果您的 post_id 不等于您的 user_id,则发送通知。在这种情况下,这种情况只会出现一次。

我不确定你的逻辑是如何设置的,但我想你有另一个名为 Post 的模型。

你的逻辑应该是这样的:

public function store(Request $request, $post_id){

    $like = Like::create([ 'user_id' => Auth::user()->id, 'post_id' => $post_id]);

    $post = Post::whereId($post_id)->first();

    if( $post->user_id !== Auth::user()->id ) {
        //SEND Notification code here
    }

}

一个更好的方法是在你的 Like 模型中创建一个指向你的 Post 模型的关系。看这里:https://laravel.com/docs/5.4/eloquent-relationships#one-to-many-inverse

特别是一对多逆。他们有一个带有评论的例子,我认为这与你的情况非常相似。

希望对您有所帮助