我尝试使用文档中推荐的DataExtension扩展Member类。我设法将我的DataExtension附加到Member类,但是我无法在Member对象上访问我新定义的方法。
MemberExtension.php
<?php
/**
* Extends the standard SilverStripe Member DataObject
*/
class MemberExtension extends DataExtension {
private static $db = array(
'MemberExpires' => 'Date',
'Username' => 'Varchar'
);
/**
* Returns the Member Object for the username specified
*
* @param $id int the username
* @returns Member|null the Member object or null if not found
*/
public static function getByUsername(string $username) {
return Member::get()->filter('Username', $username)->first();
}
}
我在YAML配置中添加扩展名,我执行/ dev / build,新列出现在数据库中。
当我运行Object::get_extensions('Member')
时,它会正确返回一个包含MemberExtension
类的数组。
但是,当我运行Member::getByUsername()
时,始终无法引用Fatal error: Call to undefined method Member::getByUsername()
我这样做得对吗? 他们的任何东西我都没有抓住吗?
感谢您的时间。