当我运行程序时。我的模型用户有一些错误。路径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
,但没有任何变化,仍然是错误。
答案 0 :(得分:0)
也许您尝试将您的名称空间更改为namespace App\Models;
的用户模型?
答案 1 :(得分:0)
更改您的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');
}
}
这将解决您的命名空间问题
答案 2 :(得分:0)
答案有点晚,但是我遇到了同样的问题,并使用composer dump autoload
解决了这个问题。
我已将模型移至“模型”文件夹中,并且自动加载文件不是最新的。
答案 3 :(得分:0)
在新版本的Laravel(版本8+)中,模型保存在新文件夹中,即Http内部的模型。
出现此错误的原因是,文件位于该文件夹中,但命名空间未指向该文件夹,并且找不到所需的文件,因为该文件位于该文件夹中。
只需更改 命名空间应用;
到 命名空间App \ Models;
将解决您的问题。
谢谢。
答案 4 :(得分:0)
从 auth.php
文件中的以下代码替换您的代码
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
],