2017-01-23 4 views
0

У меня есть контроллер, который слушает новое создание расписания и отправляет результат обратно в представление через ajax. Внутри нее я хочу добавить уведомление для отправки электронной почты пользователю после того, как расписание не будет завершено из-за нехватки ресурсов в эту конкретную дату и время.Как установить класс «App Http Controllers Notification» не найден в laravel?

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

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

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

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

+0

Пожалуйста, покажите нам 'восемьдесят девятая линия DadosAgendamentoController.php' –

+0

Я почти уверен, что вы не импортировали класс «Уведомление». Просто импортируйте пространство имен, и оно должно быть исправлено. Если Уведомление является фасадом, просто вызовите '\ Notification :: foo()' – felipsmartins

+0

@AlexeyMezenin, я отредактировал вопрос. –

ответ

4

Уведомления могут быть посланы двумя способами: с помощью меток уведомлений по уведомляемому признаку или с помощью фасада уведомления.

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)); 
+0

Ошибка решена, но она не сработала, как ожидалось ... Laravel Уведомления отправляются только в том случае, если в базе данных создаются новые данные модели? Так ли это работает? Могу ли я отправить его только в том случае, если для значения поля таблицы установлено значение false? –

2

Добавить use Notification; в контроллере

ИЛИ

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

0

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

use App\Notifications\AgendamentoPendente; 

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

Смежные вопросы