Событие Laravel () не работает в производстве

я пытаюсь развернуть свой проект laravel через кузницу и digitalocean. И хотя он отлично работает в моей локальной среде разработки, мне трудно запустить пакет laravel-websockets.

Итак, хотя мой «CruiseCrontroller» отлично работает локально, каким-то образом в процессе производства я получаю следующую ошибку.

[2020-12-22 15:42:00] production.ERROR: Class 'App\Events\newRoom' not found {"exception":"[object] (Error(code: 0): Class 'App\\Events\newRoom' not found at /home/forge/default/app/Http/Controllers/CruiseController.php:49)

это упомянутая строка в CruiseController:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use App\Events\newRoom;
use App\Events\RoomStatusUpdate;
use App\Room;
use App\Sailor;
use Carbon\Carbon;

class CruiseController extends Controller
{
    public function newRoom(Request $request){
   
    ...
    event(new NewRoom($room->channel_id));
}
...

Я гуглил и искал через stackoverflow в течение 2 часов и надеюсь, что кто-то здесь может указать мне правильное направление. Спасибо

как выглядит newRoom? Кроме того, судя по имени класса, он может нарушать PSR-4/0, что не позволит добавить его в автозагрузчик в композиторе 2.

Derek Pollard 22.12.2020 17:57

также имейте в виду, что вы импортировали newRoom, но затем вызвали new NewRoom, которого не существует

Derek Pollard 22.12.2020 17:58

Будьте последовательны в наименовании и использовании регистра... У вас есть App\Events\RoomStatusUpdate, что является правильным падежом, но также и App\Events\newRoom, что является неправильным падежом. Это должно быть NewRoom, на которое вы правильно ссылаетесь ниже. Это повсюду :Р

Tim Lewis 22.12.2020 18:01
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
3
440
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Регистр важен в файловых системах, чувствительных к регистру. Вы импортируете следующий класс:

use App\Events\newRoom;

в то время как вы должны импортировать

use App\Events\NewRoom;

Автозагрузчик пытается найти файл newRoom.php и не может этого сделать, потому что файл с таким именем не существует.

Вы правы насчет использования case. Но изменение его не устраняет ошибку...

N. Kue 22.12.2020 18:19

В этом случае посмотрите, есть ли у вас NewRoom.php файл и внутри вы объявили NewRoom класс.

Chris Cynarski 22.12.2020 18:21

Передислоцировано и работает сейчас. На самом деле, если есть другая ошибка, но это другой случай... Спасибо за помощь!

N. Kue 22.12.2020 18:26

Другие вопросы по теме

Laravel - исключение записи для события расписания в прослушивателе модели
Laravel 5.8: как отправить электронное письмо после того, как пользователь нажмет ссылку подтверждения
Как создать глобальную переменную Laravel из данных сеанса и сделать ее доступной во всех представлениях?
Я хочу создать отчет по электронной почте (копия, отправленная по электронной почте), как только электронное письмо будет отправлено пользователю в Laravel с помощью функции Mail
Неопределенная переменная: ошибка события в AppServiceProvider
Как остановить подделку событий (переключить подделку событий) в модульном тестировании Laravel
Как лучше всего отправлять электронные письма в laravel с другим шаблоном электронной почты
Laravel обновляет Eloquent Field автоматически при сохранении
Queue \ SerializesModels удаляет переменные Laravel Event
Как я могу использовать Laravel Event Listner для отправки почтового уведомления перед событием