идея в том, что когда я пытаюсь добавить новый проект в базу данных, я также отправляю уведомление по электронной почте и транслирую уведомление базы данных другим пользователям, и это действие работает, но потратил много времени около 10 секунд, поэтому я попросил вас найти решение для уменьшения времени выполнения мой класс уведомлений:
public function via($notifiable)
{
return ['mail','database','broadcast'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage)
->line('New Project :' . $this->data['projet'])
->action('Notification Action', url('/detail/'.$this->data['id']))
->line('Thank you for using our application!');
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toDatabase($notifiable)
{
return [
'idprojet' => $this->data['id'],
'projet' => $this->data['projet'],
'typeNotification' =>'App\Notifications\NewProject'
];
}
public function toBroadcast($notifiable)
{
return new BroadcastMessage([
'idprojet' => $this->data['id'],
'projet' => $this->data['projet'],
'user' => auth()->user(),
'typeNotification' =>'App\Notifications\NewProject'
]);
}
мой код в контроллере
public function store(Request $request)
{
//
$this->validate($request,[
'name' => 'required|string|max:50',
'durre' => 'required|string|max:50',
'description'=>'required|string|max:5000',
'client_id' => 'required',
'budget' => 'required',
]);
$data = $request->all();
$client = User::where('id', $data['client_id'])->first();
$projet =new Projet;
$projet->name = $data['name'];
$projet->durre = $data['durre'];
$projet->description = $data['description'];
$projet->client_id = $data['client_id'];
$projet->owner = $client->name;
$projet->budget = $data['budget'];
$projet->save();
$ids=[$request->membre_id,$request->chefprojet];
$chef = User::whereIn('id' , $ids)->get();
$data = array(
'projet' => $projet->name,
'id' => $projet->id,
);
Notification::send( $chef,new NewProject ($data));
}
Я также использую толкатель laravel, чтобы сделать уведомление в режиме реального времени
любое решение, пожалуйста