【问题标题】:laravel Notification Undefined index: user_idlaravel 通知未定义索引:user_id
【发布时间】:2020-01-06 08:05:15
【问题描述】:

我要做按摩通知,我已经做了通知步骤, 但给了我这个错误 当我做dd($notifiable);时,我找到了所有数据

未定义索引:user_id OR 未定义索引:名称

public function store(Request $request)
    {
        $chating=new chats();
        $chating->chat = $request->input('chat');
        $chating->user_id = Auth::id();
        $chating->employee_id = $request->input('employeeid');
        $chating->save();

        $user_id=$request->input('employeeid');       
        auth()->user()->notify(new SendMassages($user_id));

        return redirect()->back();
    }

数据库通知表coulmn数据{"user_id":5,"name":"Ibrahim"}

型号

    protected $user_id;
    protected $name;
    public function __construct($user_id)
    { 
        $this->user_id = $user_id;
    }
public function via($notifiable)
    {
        return ['database'];
    }
 public function toDatabase($notifiable)
    {
        return [
            'user_id' => $this->user_id,
            'user'=>$notifiable

        ];
    }

查看:

<a href="{{url('chatnow',$notification->data['user_id'])}}">{{ $notification->data['name'] }}</a>

型号:

class SendMassages extends Notification
{
    use Queueable;
    public $user;
    public $user_id;
    public function __construct($user_id)
    {
        $this->user_id = $user_id;
    }
    public function via($notifiable)
    {
        return ['database'];
    }
    public function toDatabase($notifiable)
    {
      // dd($notifiable);
        return [
           'user_id' => $this->user_id,
           'user'=>$notifiable
        ];
    }
}

【问题讨论】:

  • 在这个 auth()->user()->notify(new SendMassages($user_id));你似乎没有设置 $user_id,也许高于你需要做的 $user_id = Auth::id();

标签: laravel


【解决方案1】:

您的代码中的封装似乎有问题。首先,如果您想要快速且不安全的方式,则必须将模型的属性公开,但如果您想要 OOP 方式,则必须编写 setter 来为您执行该逻辑。 第一种也是不安全的方法:

class YourModel {
    public $user_id;

    .
    .
    .
}

OOP 方式:

Class {
    public function setUserId(int $userId)
    {
        $this->user_id = $userId;
    }

    .
    .
    .
}

如果您愿意得到确切的答案,请将您的控制器类和模型复制到此处。

【讨论】:

  • 感谢您的评论我尝试了您的解决方案,但发现同样的错误
  • @HimaHima 你能提供你的模型和你的控制器代码吗?
  • 类 SendMassages 扩展通知 { 使用 Queueable;公共$用户;公共 $user_id;公共函数 __construct($user_id) { $this->user_id = $user_id; } 公共函数 via($notifiable) { return ['database']; } public function toDatabase($notifiable) { // dd($notifiable); return [ 'user_id' => $this->user_id, 'user'=>$notifiable ]; } }
  • 公共功能存储(请求 $request){ $chating=new chats(); $chating->chat = $request->input('chat'); $chating->user_id = Auth::id(); $chating->employee_id = $request->input('employeeid'); $聊天->保存(); $user_id=$request->input('employeeid'); auth()->user()->notify(new SendMassages($user_id));返回重定向()->返回(); }
猜你喜欢
  • 2020-12-05
  • 1970-01-01
  • 1970-01-01
  • 2012-09-26
  • 2011-12-04
  • 1970-01-01
  • 2022-10-13
  • 2018-08-02
  • 2012-08-24
相关资源
最近更新 更多