我有两个型号:User
和Form
。该Form
模型有两个belongsTo
关系:Laravel雄辩的关系 - 奇怪的路径
class Form extends Model
{
public function user()
{
return $this->belongsTo(User::class);
}
public function manager_user()
{
return $this->belongsTo(User::class, 'manager_id');
}
}
manager_id
是空整型列。
使用Artisan鼓捣,我尝试将用户作为经理分配到形式(使用these methods):
$manager = App\User::findOrFail(1);
$form = App\Form::findOrFail(1);
$form->manager_user()->assign($manager);
,但我得到的错误:
$form->manager_user()->associate($gacek)
PHP Fatal error: Class 'App\App\User' not found in /var/www/html/test/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php on line 779
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'App\App\User' not found
我在做什么错?为什么框架试图搜索App\App\User
而不是App\User
?
这是Laravel 5.3的全新安装。
编辑 完整模型命名空间的文件:
Form
型号:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Form extends Model
{
public function user(){
return $this->belongsTo("App\User");
}
public function manager_user(){
return $this->belongsTo("App\User", 'manager_id');
}
}
User
型号:
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'name', 'email', 'password', 'surname', 'login', 'sign'
];
protected $hidden = [
'password', 'remember_token',
];
public function forms(){
return $this->hasMany(Form::class);
}
}
也许命名空间问题。 –
你可以显示你的模型的命名空间! –
当然,请参阅我的编辑。 – Gacek