Laravel继承用户

时间:2015-11-27 17:13:58

标签: php laravel laravel-4

我有两种类型的用户:UserSuperUserSuperUser旨在从User继承,并具有其他属性和功能。例如,User有一个name; SuperUsernamesurname。但是,当我尝试在SuperUsers 中插入某些内容时,它不会插入它 - 而是发生错误并且未插入。

$user= new SuperUser;
$user->name = "Foo";
$user->surname = "Bar";
$user->save();

1 个答案:

答案 0 :(得分:1)

查看代码时,我猜测您所获得的错误与Eloquent尝试将对象保存在不存在的表中有关。

当你定义一个Eloquent模型时,Eloquent假设这个模型应该存储在一个与模型同名的表中,但是以蛇形和复数形式存储。因此,当您尝试保存用户对象时,它会尝试将其保存在用户表中,但是当您尝试保存超级用户对象时,Eloquent尝试将其保存在 super_users 表中。

如果您希望拥有代表用户层次结构的类层次结构,但希望将所有这些层次结构保存到同一个表中,则需要在公共父模型类中定义表名 - 用户在你的情况下。您可以通过将值设置为$ table variable:

来实现
class User extends Model {
  protected $table = 'users';
}