du90093662774150 2017-06-06 01:11
浏览 31
已采纳

Laravel 4.2在回复后发送电子邮件给用户

so I have a ticket system, and what I want to do is when the user post a comment the other party should get an email, here is what I've accomplished so far:

In the CommentsController:

public function postComment($id) {
    $content = trim(Input::get('content'));
    if (empty($content)) {
        return Redirect::back();
    }
    if (Auth::user()->isAdmin() || $this->tickets->isTicketBelongsToUser(Auth::user()->id, $id)) {
        if (Input::hasFile('attachment')) {
            $attachmendId = Uploader::attach(Input::file('attachment'));
        }
        $comment = $this->comments->getNew(['content' => Input::get('content'), 'user_id' => Auth::user()->id, 'attachment_id' => isset($attachmendId) ? $attachmendId : null, 'ticket_id' => $id]);        

    //START geting the user id and send email//     

    $client = $this->users->$id;
    $this->userMailer->CommentRespond($id); 

    //END geting the user id and send email//       

        $this->comments->save($comment);
    }
    return Redirect::back()->withMessage('Your comment has been sent');
}

In the UserMailer.php:

 public function CommentRespond(User $user)
    {
        $view    = 'emails.new-comment';
        $subject = 'New Comment has been posted';
        $data    = [
        'name' => $user->name
        ];
        return $this->sendTo($user->email, $subject, $view, $data);
    }

Error:

 ErrorException (E_NOTICE)

Undefined property: Care\Repositories\Eloquent\UsersRepository::$93

I know it there is something wrong with the variable assigning but I couldn't find it out, so please if you can help that will be great.

thanks

  • 写回答

1条回答 默认 最新

  • dongtan6543 2017-06-06 05:04
    关注

    I think this is the culprit.

    //START geting the user id and send email//     
    //$client = $this->users->$id; <-- Wrong One
    $client = $this->users->id;
    $this->userMailer->CommentRespond($id); 
    

    I suggest you convert in to this.

    UPDATE: change the retrieval of user row to

    $client = $this->users->getById($id);
    $this->userMailer->CommentRespond($client); 
    

    then update CommentRespond

    public function CommentRespond($user)
    {
        $view    = 'emails.new-comment';
        $subject = 'New Comment has been posted';
        $data    = [
        'name' => $user['name']
        ];
        return $this->sendTo($user['email'], $subject, $view, $data);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。