Laravel 4.2界面混乱

时间:2015-03-07 05:41:48

标签: php laravel laravel-4

Laravel 4.2中的默认用户模型实现了 UserInterface RemindableInterface ,但在查看我的用户模型的定义时,这些方法定义在用户模型上未实现这两个接口。

use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface {

    use UserTrait, RemindableTrait;

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'users';

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = array('password', 'remember_token');

}

当User类没有实现在这两个接口上定义的那些方法时,它怎么没有抛出任何错误?

1 个答案:

答案 0 :(得分:2)

您可以看到User课程使用两个特征UserTraitRemindableTrait。如果检查这些特征,您将看到在那里实现了所需的方法。因此User类不需要实现这些方法,只要它们是继承的。如果需要,您可以实现它们并覆盖/扩展继承的功能。

方法也可以从父类继承。所以这里的方法可以在Eloquent类中实现,User类扩展(虽然这不是这里的情况)。

您可以在PHP文档中阅读有关这些主题的更多信息:

  

Traits

     

Object Inheritance

     

Object Interfaces