Класс Jenssegers \ Mongodb \ Eloquent \ Model не найден - PullRequest
0 голосов
/ 17 июня 2020

Laravel Версия: 7.16.1
PHP Версия: 7.4
Драйвер и версия базы данных: "jenssegers/mongodb": "4.0.0-alpha.1"

У меня есть приложение очереди, которое я вызываю с консоли. Когда я хочу вставить коллекцию, я получаю ошибку ниже. В чем будет причина? Я думаю, ошибка.

> Class 'Jenssegers\Mongodb\Eloquent\Model' not found
> {"exception":"[object] (Error(code: 0): Class
> 'Jenssegers\Mongodb\Eloquent\Model' not found

Когда я использую обычный браузер. Все в порядке.

Я сделал «composer dump-autoload», но ничего не изменил.

моя структура:

class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
        ],
        'Illuminate\Auth\Events\Logout' => [
            'App\Listeners\LogSuccessfulLogout',
        ],
        'eloquent.created: *' => [
            'App\Listeners\EloquentListener',
        ],
        'eloquent.updated: *' => [
            'App\Listeners\EloquentListener',
        ],
        'eloquent.deleted: *' => [
            'App\Listeners\EloquentListener',
        ],
        'eloquent.restored: *' => [
            'App\Listeners\EloquentListener',
        ]
    ];



<?php

namespace App\Listeners;

use App\Http\Controllers\Common\Models\ActivityLogs;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;

class EloquentListener
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  Logout  $event
     * @return void
     */
    public function handle($event, $data)
    {
        $disableFire = [
            'ActivityLogs'
        ];

        $continue = true;
        foreach ($disableFire as $item) {
            $continue = strstr($event, $item) ? false: true;
        }

        if ($continue) {
            ActivityLogs::create([
                'fire_event' => $event,
                'user_id' => auth()->id(),
                'site_id' => auth()->user()->site_id
            ]);
        }

        return true;

    }

}

<?php

namespace App\Http\Controllers\Common\Models;

use Jenssegers\Mongodb\Eloquent\Model;
use Jenssegers\Mongodb\Eloquent\SoftDeletes;

class ActivityLogs extends Model {

    use SoftDeletes;

    protected $dates = ['created_at', 'updated_at', 'deleted_at'];

    protected $collection = 'activity_logs';

    protected $connection = 'mongodb';

    protected $fillable = [
        //'activity_log_id',
        'fire_event',
        'site_id',
        'user_id',
        'deleted_at',
        'created_at',
        'updated_at'
    ];
}

1 Ответ

0 голосов
/ 17 июня 2020

Вы настроили очередь. php at config?

https://github.com/jenssegers/laravel-mongodb#queues

Настроили ли вы файл .env ??

вы установили пакет?

composer require jenssegers / mongodb

Это ссылка на руководство с примером

https://appdividend.com/2018/05/10/laravel-mongodb-crud-tutorial-with-example/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...