В моем приложении laravel 5.7.3 есть мастер создания пользователя.Это сработало, но я получил ошибку, когда при создании пользователя я подключил плагин https://github.com/jrean/laravel-user-verification/
Моя модель приложения / User.php:
<?php
namespace App;
use DB;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use App\Http\Traits\funcsTrait;
use App\library\ImagePreviewSize;
//class User extends Authenticatable
class User extends Authenticatable
{
use Notifiable;
use funcsTrait;
protected $table = 'users';
protected $primaryKey = 'id';
public $timestamps = false;
...
и в приложении control / Http / Controllers / AccountController.php:
public function postConfirm() // create new user with all related data
{
DB::beginTransaction();
try {
$newAccountData = Session::get($this->register_session_key);
$avatar_filename = ! empty($newAccountData['avatar_filename']) ? $newAccountData['avatar_filename'] : '';
$avatar_filename_path = ! empty($newAccountData['avatar_filename_path']) ? $newAccountData['avatar_filename_path'] : '';
$newUser = new User();
$newUser->username = $newAccountData['username'];
$newUser->email = $newAccountData['email'];
$newUser->password = $newAccountData['password'];
$newUser->first_name = $newAccountData['first_name'];
$newUser->last_name = $newAccountData['last_name'];
$newUser->phone = $newAccountData['phone'];
$newUser->website = $newAccountData['website'];
$newUser->status = 'N';
if ( ! empty($avatar_filename)) {
$newUser->avatar = $newAccountData['avatar_filename'];
}
$newUser->save();
$ret1= UserVerification::generate($newUser);
В последней строке я получил ошибку:
The model instance provided is not compliant with this package.
В документах, указанных выше, я прочитал: Предоставленный экземпляр модели не совместим с этим пакетом.Он должен реализовывать аутентифицируемый интерфейс Illuminate \ Contracts \ Auth \ Authenticatable
Я попытался изменить мой пользовательский modfel с помощью строк:
<?php
namespace App;
use DB;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\Authenticatable;
use App\Http\Traits\funcsTrait;
use App\library\ImagePreviewSize;
class User extends Authenticatable
{
...
Но я получил ошибку:
Class App\User cannot extend from interface Illuminate\Contracts\Auth\Authenticatable
Почему ошибка и как ее исправить?
Спасибо!