когда я запускаю программу. есть какая-то ошибка в моей модели пользователя. путь 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, но ничего не изменилось, все еще ошибки.
уже пробовал composer dump-autoload
У меня была эта проблема, и я не решил ее с помощью автозагрузки композитора, затем используйте это решение stackoverflow.com/a/64385832/308578

Может быть, вы попытаетесь изменить свое пространство имен на namespace App\Models; для вашей модели User?
"Cannot declare class App\Models\User, because the name is already in use"меняю тебя 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"есть ли у вас в папке Model другая модель с именем User
У меня нет этого
Немного запоздалый ответ, но у меня была такая же проблема, и я решил ее с помощью composer dump autoload.
Я переместил модели в папку Models, а файл автозагрузки не был обновлен.
В новой версии Laravel (версия 8+) модели хранятся в новой папке, а именно Модели внутри Http.
Вы получаете эту ошибку, потому что ваш файл находится внутри этой папки, но пространство имен не ведет к этой папке и не может найти требуемый файл, поскольку он находится внутри папки.
Просто меняя
namespace App;
к
namespace App\Models;
решит вашу проблему.
Замените свой код из приведенного ниже кода в файле auth.php
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
],
composer dumpautoloadпробовали?