Database 无法声明类App\User,因为该名称已在我的浏览器中使用
当我运行程序时。我的模型用户中有错误。路径为App\Models\User.phpDatabase 无法声明类App\User,因为该名称已在我的浏览器中使用,database,laravel,model,eloquent,Database,Laravel,Model,Eloquent,当我运行程序时。我的模型用户中有错误。路径为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\Model
<?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');
}
}
也许您尝试将名称空间更改为名称空间应用程序\模型
到您的用户模型?更改您的名称空间
<?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');
}
}
回答有点晚,但我遇到了同样的问题,并使用composer dump autoload解决了它
我已将模型移动到“模型”文件夹中,而自动加载文件不是最新的。在新版Laravel(版本8+)中,模型保存在一个新文件夹中,即Http中的模型
出现此错误是因为您的文件位于该文件夹内,但命名空间未指向该文件夹,并且无法找到所需的文件,因为它位于该文件夹内
简单地改变
namespace App;
到
将解决您的问题。在auth.php
文件中替换下面的代码
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
],
“无法声明class App\Models\User,因为该名称已在使用”
您的模型文件夹中是否有其他名为UserI的模型我没有它“无法声明class App\Models\User,因为该名称已在使用”
您是否尝试过composer dump autoload
?已尝试过composer dump autoload
我遇到此问题,但没有通过composer dump autoload解决,然后使用此解决方案
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
],