Вы должны использовать метод toDatabase
или toArray
, чтобы сохранить любые дополнительные данные. Кроме того, вам не нужно менять миграцию уведомлений.
вы должны построить $letter
переменную внутри DatabaseNotification
, например:
public function saveUser($formdata)
{
$password = $formdata['password'];
$securePassword = Hash::make($password);
$user = User::create(array_merge($formdata, ['password' => $securePassword]));
$admin = User::where('type', 'admin')->first();
// $letter = collect([
// 'title' => $user->name.' New User Registered in your Portal',
// ]);
// This syntax or below.
// Notification::send($admin, new DatabaseNotification($user, $message));
// Make sure you added `use Notifiable` trait in your `User` model
$admin->notify(new DatabaseNotification($user, $message));
return $user;
}
Тогда в вашем toArray
или toDatabase
методе:
protected $message;
protected $user;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct($message, User $user)
{
$this->message = $message;
$this->user = $user;
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
'user_id' => $this->user->id,
'message' => $this->message
];
}
final toArray
вывод сериализуется в столбец data
таблицы notifications
.