2012-02-07 4 views
1

を拡張CakePHPの2.0.5ヘルパー:ここテスト私はFormHelperのから延びCakePHPのヘルパーを作成していFormHelperの

App::uses('FormHelper', 'View/Helper'); 
class MyFormHelper extends FormHelper{ 
    public function wysiwyg($fieldName, $options = array()){ 
     return parent::textarea('Model.field'); 
    } 
} 

は私のTestCaseです:

App::uses('Controller', 'Controller'); 
App::uses('View', 'View'); 
App::uses('MyFormHelper', 'View/Helper'); 

class MyFormHelperTest extends CakeTestCase { 
    public $helper = null; 

    public function setUp() { 
     parent::setUp(); 
     $Controller = new Controller(); 
     $View = new View($Controller); 
     $this->helper = new MyFormHelper($View); 
    } 


    public function testWysiwyg() { 
     $result = $this->helper->wysiwyg('Model.field'); 
     $expected = array(
      'textarea' => array('name' => 'data[Model][field]', 'id' => 'ModelField'), 
      '/textarea', 
     ); 
     $this->assertTags($result, $expected); 
    } 
} 

私がテストを実行すると、I私は、問題は私のヘルパーから来ていることを知っていPHPUNIT_FRAMEWORK_ERROR_NOTICE

Trying to get property of non-object 

を持っている:

return parent::textarea('Model.field'); 

これを修正する方法はわかりません。事前に

感謝:)

+0

Caを拡張したい特定の理由はありますかkeの 'FormHelper'ではなく、' AppHelper'ではなく、マニュアルに記載されている標準的な方法ですか? http://book.cakephp.org/2.0/ja/views/helpers.html#creating-helpers – mensch

+0

私は生成されたHTMLをWebデザインに適合させるためにFormHelperを拡張しています。 (クラスを追加し、入力の前にdivを追加する...) – user1195760

答えて

0

単にすることができますケーキ2.0でHtmlHelperのメソッドを上書きする:

AppControllerに指定するextends HtmlHelper、例えばlink方法を含むあなたのOwnHelperクラスを作成します。

$helpers = array('Html' => array('className' => 'OwnHelper')); 

via ADmad

関連する問題