Невозможно объявить класс App \ User, потому что это имя уже используется в моем браузере

когда я запускаю программу. есть какая-то ошибка в моей модели пользователя. путь App \ Models \ User.php

 <?php

 namespace App;

 use Illuminate\Notifications\Notifiable;
 use Illuminate\Contracts\Auth\MustVerifyEmail;
 use Illuminate\Foundation\Auth\User as Authenticatable;
 use App\Presence;
 use App\Models\Project;
 use App\Productivity;
 use App\Sick_leave;
 use App\Annual_leave;
 use App\Models\Team;

 class User extends Authenticatable
 {
   use Notifiable;

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'name', 'email', 'password', 'level',
];

/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
protected $hidden = [
    'password', 'remember_token',
];

public function presence()
    {
        return $this->hasOne(Presence::class, 'astrowatch', 'user_id', 'presence_id');
    }

public function role()
    {
        return $this->belongsTo(Role::class, 'role_id');
    }

public function permission()
    {
        return $this->hasMany(Permission::class);
    }

public function teams()
    {
        return $this->belongsToMany(Team::class, 'user_teams');
    }
  }

ошибка

«Невозможно объявить класс App \ User, потому что это имя уже используется» в моем браузере. Я пробовал use Illuminate\Database\Eloquent\User as EloquentUser, но ничего не изменилось, все еще ошибки.

эта ошибкаНевозможно объявить класс App \ User, потому что это имя уже используется в моем браузере

composer dumpautoload пробовали?

Egretos 16.10.2018 08:30

уже пробовал composer dump-autoload

Na Koriah 16.10.2018 08:41

У меня была эта проблема, и я не решил ее с помощью автозагрузки композитора, затем используйте это решение stackoverflow.com/a/64385832/308578

saber tabatabaee yazdi 16.10.2020 10:49
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
1
3
8 940
5

Ответы 5

Может быть, вы попытаетесь изменить свое пространство имен на namespace App\Models; для вашей модели User?

"Cannot declare class App\Models\User, because the name is already in use"
Na Koriah 16.10.2018 08:21

меняю тебя namespace

<?php

namespace App\Models;

 use Illuminate\Notifications\Notifiable;
 use Illuminate\Contracts\Auth\MustVerifyEmail;
 use Illuminate\Foundation\Auth\User as Authenticatable;
 use App\Presence;
 use App\Models\Project;
 use App\Productivity;
 use App\Sick_leave;
 use App\Annual_leave;
 use App\Models\Team;

 class User extends Model implements Authenticatable
 {
   use Notifiable;

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'name', 'email', 'password', 'level',
];

/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
protected $hidden = [
    'password', 'remember_token',
];

public function presence()
{
    return $this->hasOne(Presence::class, 'astrowatch', 'user_id','presence_id');
}

public function role()
{
    return $this->belongsTo(Role::class, 'role_id');
}


}

это исправит проблему с пространством имен

"Cannot declare class App\Models\User, because the name is already in use"
Na Koriah 16.10.2018 08:21

есть ли у вас в папке Model другая модель с именем User

Shailendra Gupta 16.10.2018 08:22

У меня нет этого

Na Koriah 16.10.2018 08:27

Немного запоздалый ответ, но у меня была такая же проблема, и я решил ее с помощью composer dump autoload.

Я переместил модели в папку Models, а файл автозагрузки не был обновлен.

В новой версии Laravel (версия 8+) модели хранятся в новой папке, а именно Модели внутри Http.

Вы получаете эту ошибку, потому что ваш файл находится внутри этой папки, но пространство имен не ведет к этой папке и не может найти требуемый файл, поскольку он находится внутри папки.

Просто меняя

namespace App;

к

namespace App\Models;

решит вашу проблему.

Замените свой код из приведенного ниже кода в файле auth.php

'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],
    ],

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