Как исправить класс ‘App \ Http \ Controllers \ Notification’, не найденный в laravel?

У меня есть контроллер, который прослушивает создание нового расписания и отправляет результат обратно в представление через ajax. Внутри него я хочу добавить Уведомление, чтобы отправить электронное письмо пользователю, когда Расписание не может быть заполнено из-за нехватки ресурсов на эту конкретную дату и время.

Проблема в том, что я получаю ошибку ниже:

Class 'App\Http\Controllers\Notification' not found in /laravel/app/Http/Controllers/DadosAgendamentoController.php on line 89

Структура папок такая:

-app
-Http
-Controllers
DadosAgendamentoController.php
-Notifications
AgendamentoPendente.php

DadosAgendamentoController.php код головы:

namespace App\Http\Controllers;

use Input;
use Request;
use App\Servicos;
use App\Disponibilidades;
use App\Estabelecimentos;
use App\HorariosEstabelecimento;
use App\Agendamento;
use App\User;
use App\Notifications\AgendamentoPendente;

строки 88 и 89:

$user = User::where('id',1)->get();
Notification::send($user, new AgendamentoPendente(1));

Через мой контроллер я могу получить доступ ко всем классам выше, но не AgendamentoPendente

Моя цель состоит в том, чтобы отправить электронное письмо администратору, чтобы он мог предложить новую дату и время клиенту, когда ресурсы недоступны в нужную дату и время.

Как это можно исправить? Могу ли я получить доступ к классу в этом контроллере? Как?

3

Решение

Уведомления могут быть отправлены двумя способами: с помощью метода notify of the Notifiable trait или с помощью фасада Notification.

https://laravel.com/docs/5.3/notifications#sending-notifications

Опция 1

Ты можешь использовать notify() метод:

$user->notify(new AgendamentoPendente(1));

Также убедитесь, что User класс использует Notifiable черта характера:

use Illuminate\Notifications\Notifiable;

class User extends Authenticatable
{
use Notifiable;

Вариант 2

Используя фасад с полным пространством имен:

\Notification::send($user, new AgendamentoPendente(1));
6

Другие решения

добавлять use Notification; в вашем контроллере

ИЛИ ЖЕ

в качестве альтернативы, используйте \Notification::send($user, new AgendamentoPendente(1));

4

добавьте это в верхней части контроллера:

use App\Notifications\AgendamentoPendente;

у меня была та же проблема, и это исправило

0

Также обратите внимание, что если вы используете фасад, убедитесь, что ваш пользователь запрашивает поле электронной почты из вашей базы данных

$users = User::select("email")->get();
\Notification::send($users, new AgendamentoPendente(1));
0
По вопросам рекламы [email protected]