【发布时间】:2013-09-27 10:34:03
【问题描述】:
我在自定义命名空间上有 Eloquent 模型。我的意思是,例如,我的用户模型在Admin\User 中。每个用户都有一个关联的成员或管理员。这些后来的模型与用户模型位于同一命名空间:Admin\Member 和 Admin\Admin。
我已经定义了如下关系
namespace Admin;
use Illuminate\Database\Eloquent\Model as Eloquent;
class User extends Eloquent
{
public function model()
{
return $this->morphTo();
}
}
class Admin extends Eloquent
{
public function user()
{
return $this->morphOne('Admin\User', 'model');
}
}
class Member extends Eloquent
{
public function user()
{
return $this->morphOne('Admin\User', 'model');
}
}
我的问题是,当我这样做时:
$member = Member::find($id);
$member->user 是NULL。
还有什么我需要定义的吗?有什么我遗漏的吗?
【问题讨论】:
-
你解决过这个问题吗?我遇到了同样的问题(使用 morphMany() 顺便说一句),虽然它应该很简单,但我被卡住了......
-
删除命名空间声明后是否有效?
-
实际上,$member->user 返回 null 表示没有找到与该成员关联的用户。如果找不到类,则会引发异常。
-
我确实让它工作了,我不知道具体是怎么做的,但一定要重新迁移你的表并运行 composer dump-autoload。