0

私はlaravelでdockerを使用しており、mongoをインストールしてmongo DBへの接続を確立しました.mongodbの移行を作成する部分に到達しました. -mongodb

以前私が使用していた: https://spatie.be/docs/laravel-activitylog/v4/introduction

しかし、ログインすると次のエラーが発生します。

 local.ERROR: http://localhost:8080/spa/login TypeError: Argument 1 passed to App\Models\User::Spatie\Activitylog\Traits\{closure}() must be an instance of Jenssegers\Mongodb\Eloquent\Model, instance of App\Models\User given, called in /var/www/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php on line 392 and defined in /var/www/vendor/mostafamaklad/laravel-activitylog-mongodb/src/Traits/DetectsChanges.php:16

私のファイルでは:

config/activitylog.php

<?php
    return [
        'enabled' => env('ACTIVITY_LOGGER_ENABLED', true),
        'delete_records_older_than_days' => 365,
        'default_log_name' => 'default',
        'default_auth_driver' => null,
        'subject_returns_soft_deleted_models' => false,
        'activity_model' => \Spatie\Activitylog\Models\Activity::class,
        'table_name' => 'activity_log',
         'database_connection' => env('DB_MG_CONNECTION'),
    ];

私の.env

DB_MG_CONNECTION=mongodb
DB_MG_HOST=umongodb
DB_MG_PORT=27017
DB_MG_DATABASE=my_bd    
DB_MG_USERNAME=root
DB_MG_PASSWORD=secret

私のつながりconfig/database.php

'mongodb' => [
            'driver' => 'mongodb',
            'host' => env('DB_MG_HOST', 'localhost'),
            'port' => env('DB_MG_PORT',27017),
            'database' => env('DB_MG_DATABASE'),
            'username' => env('DB_MG_USERNAME'),
            'password' => env('DB_MG_PASSWORD'),
        ]

私のユーザーモデルでは

<?php

namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Jenssegers\Mongodb\Eloquent\Model;
use Spatie\Activitylog\Models\Activity;
use Spatie\Activitylog\Traits\LogsActivity;
use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Contracts\Auth\CanResetPassword;
Jenssegers\Mongodb\Eloquent\Model
use App\Traits\UserDefender;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable implements JWTSubject, CanResetPassword
{
    use UserDefender, Notifiable, LogsActivity;

    protected $table = 'users';

    protected $dates = ['deleted_at'];
}

ログイン時にエラーが発生します。ログイン、ユーザー情報の取得などに mysql を使用しているため、不便です。

4

0 に答える 0