Php Laravel 4.2接口混淆
Laravel 4.2中默认的用户模型实现了用户界面和可提醒界面,但是查看我的用户模型的定义,在两个界面上定义的那些方法并没有在用户模型上实现Php Laravel 4.2接口混淆,php,laravel,laravel-4,Php,Laravel,Laravel 4,Laravel 4.2中默认的用户模型实现了用户界面和可提醒界面,但是查看我的用户模型的定义,在两个界面上定义的那些方法并没有在用户模型上实现 use Illuminate\Auth\UserTrait; use Illuminate\Auth\UserInterface; use Illuminate\Auth\Reminders\RemindableTrait; use Illuminate\Auth\Reminders\RemindableInterface; class User ex
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
类使用了两个trait和。如果您检查这些特性,您将看到所需的方法在那里实现。因此,User
类不需要实现这些方法,只要它们是继承的。如果需要,可以实现它们并覆盖/扩展继承的功能
方法也可以从父类继承。因此在这里,这些方法可以通过elount
类中的User
类扩展来实现(尽管这里不是这样)
您可以在PHP文档中阅读关于这些主题的更多内容:
谢谢我忘了看那些特征。我的印象是,要实现的方法应该在实现类上定义,在本例中是用户类。另外,今天我正在深入研究php特性。