doujiao1814 2014-07-10 08:34
浏览 64

似乎无法扩展Member Object

I'm trying to extend the Member class with a DataExtension as it recommends in the docs. I've managed to attach my DataExtension to the Member class however I cannot access my newly defined methods on the Member object.

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(); 
   } 
}

I'm adding the extension in the YAML config, I do a /dev/build and the new columns appear in the DB. When I run Object::get_extensions('Member') it properly returns an array with my MemberExtension class. However whenver I run Member::getByUsername() it always fails citing a Fatal error: Call to undefined method Member::getByUsername()

Am I doing this properly? Is their anything I'm not grasping?

Thanks for your time.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
    • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
    • ¥15 cmd cl 0x000007b
    • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
    • ¥500 火焰左右视图、视差(基于双目相机)
    • ¥100 set_link_state
    • ¥15 虚幻5 UE美术毛发渲染
    • ¥15 CVRP 图论 物流运输优化
    • ¥15 Tableau online 嵌入ppt失败
    • ¥100 支付宝网页转账系统不识别账号