PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Friday, March 11, 2022

[FIXED] Laravel Notification - Call to a member function routeNotificationFor() on string

 March 11, 2022     email, laravel-5, laravel-5.5, laravel-notification, php     No comments   

Issue

Laravel 5.5

Controller

public function sendBookingSms(){
  $checkState = session()->get('checkState');
  $staffs = Staff::whereIn('staffId',$checkState)->get();
  foreach ($staffs as $staff) {
    $email = str_replace(" ","","44".substr($staff->mobile, 1)).'@mail.mightytext.net';
    Notification::send($email, new NewBooking($email));
  }
  return $staffs;
  session()->forget('checkState');
  return redirect(route('booking.current'))->with('message','Succesfully Send SMS to selected staffs !!');
}

NewBooking.php (Notification)

public function toMail($notifiable)
{
    return (new MailMessage)
                ->line('The introduction to the notification.')
                ->action('Notification Action', url('/'))
                ->line('Thank you for using our application!');
}

When calling this controller I am getting this error.

enter image description here

$staffs.

{  
   "staffId":45,
   "forname":"Eldhose",
   "surname":"John",
   "categoryId":2,
   "email":"devhelloworld@gmail.com",
   "mobile":"07588593278",
   "whatsappNumber":"57656578658",
   "gender":1,
   "address":"Poole",
   "pincode":null,
   "modeOfTransport":1,
   "pickupLocation":"Office",
   "branchId":0,
   "zoneId":1,
   "bandId":1,
   "paymentMode":1,
   "payRateWeekday":10,
   "payRateWeekNight":20,
   "payRateWeekendDay":10,
   "payRateWeekendNight":20,
   "payRateSpecialBhday":11,
   "payRateSpecialBhnight":15,
   "payRateBhday":11,
   "payRateBhnight":15,
   "status":1,
   "deleted_at":null,
   "created_at":"2018-02-26 22:16:44",
   "updated_at":"2018-02-26 22:16:44"
}

Please help me on this.... Thanks


Solution

Notification::send() requires the first argument to be an object, usually one that uses the Notifiable trait. You pass just a string holding email address, hence the error.

If you simply want to send a notification to given email address, you'll need to use on-demand notifications. The following should do the trick:

Notification::route('mail', $email)->notify(new NewBooking($email));

For more details see the docs: https://laravel.com/docs/5.6/notifications#sending-notifications

Latest docs: https://laravel.com/docs/9.x/notifications#on-demand-notifications



Answered By - jedrzej.kurylo
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing