1

错误 在此处输入图像描述

当有人喜欢和评论他的帖子时,我正在尝试发送事件通知,在这里工作的评论和喜欢的通知是我的通知类。我的 CommentController 有错误if ($event->user_id != $comment->user_id)

类 NewCommentEvent 扩展通知
{

    使用可排队;
    受保护的$评论;
    /**
     * 创建一个新的通知实例。
     *
     * @return 无效
     */
    公共函数 __construct($comment)
    {
        $this->comment = $comment;
    }

    /**
     * 获取通知的传递渠道。
     *
     * @param 混合 $notifiable
     * @return 数组
     */
    公共功能 via($notifiable)
    {
        返回['数据库'];
    }

    /**
     * 获取通知的数组表示。
     *
     * @param 混合 $notifiable
     * @return 数组
     */
    公共函数 toDatabase($notifiable)
    {
        返回 [
            '评论' => $this->评论,
            '事件' => 事件::find($this->comment->event_id),
            'user' => User::find($this->comment->user_id)
        ];
    }

    /**
     * 获取通知的数组表示。
     *
     * @param 混合 $notifiable
     * @return 数组
     */
    公共函数 toArray($notifiable)
    {
        返回 [
            //
        ];
    }
}

我的控制器功能代码,用于评论通知

公共功能存储(CommentRequest $request)
    {


        $event = Event::findOrFail($request->event_id);


        评论::创建([
            '评论' => $request->评论,
            'user_id' => 验证::id(),
            'event_id' => $event->id
        ]);

        if ($event->user_id != $comment->user_id) {
            $user = User::find($event->user_id);
            $user->notify(new NewCommentEvent($comment));
        }



        Toastr::success('评论成功','', ["positionClass" => "toast-top-center"]);
        返回重定向()->返回();
    }

我的评论请求

命名空间 App\Http\Requests;

使用 Illuminate\Foundation\Http\FormRequest;
使用 Illuminate\Support\Facades\Auth;

类 CommentRequest 扩展 FormRequest
{
    /**
     * 确定用户是否有权提出此请求。
     *
     * @return 布尔值
     */
    公共函数授权()
    {
        返回 Auth::check();
    }

    /**
     * 获取适用于请求的验证规则。
     *
     * @return 数组
     */
    公共功能规则()
    {
        返回 [
            '评论' => '必需|最大:2000',
        ];
    }
}
4

3 回答 3

2

$comment在您的控制器中:未定义变量。

来自 Laravel 文档:

create方法返回保存的模型实例。

所以解决方案是:

$comment = Comment::create([
            'comment' => $request->comment,
            'user_id' => Auth::id(),
            'event_id' => $event->id
        ]);
于 2018-06-27T16:34:25.463 回答
0

你还没有定义你的 $comment,你只是创建了一个评论。这是抛出错误

$comment = Comment::create([
     .
     .
]);

这将解决您的问题

于 2018-06-23T09:01:05.127 回答
0

错误信息很清楚。$comment未定义。用以下代码替换您的控制器代码:

public function store(CommentRequest $request)
    {


    $event = Event::findOrFail($request->event_id);

   // defined comment here
    $comment = Comment::create([
        'comment' => $request->comment,
        'user_id' => Auth::id(),
        'event_id' => $event->id
    ]);

    if ($event->user_id != $comment->user_id) {
        $user = User::find($event->user_id);
        $user->notify(new NewCommentEvent($comment));
    }



    Toastr::success('Comment post with success','', ["positionClass" => "toast-top-center"]);
    return redirect()->back();
}
于 2018-09-10T18:37:00.333 回答