2016-07-05 25 views
1

我有一些代碼,我需要申請多個表實體CakePHP的3 - 爲表實體可重用代碼

相似,這裏的例子 http://book.cakephp.org/3.0/en/orm/entities.html#accessors-mutators

protected function _setTitle($title) 
{ 
    // code to make re-usable 

    return $title; 
} 

我在哪裏能打動我的代碼,所以我可以從多個實體訪問它。我在行爲中嘗試了一個函數,但它不起作用。

謝謝

+0

@ AD7six,我需要設置一個新字段,但基於某些條件,我從'Configure :: read'中讀取。謝謝 – dav

回答

2

您可以通過以下兩種方法之一來完成此操作。首先,用一個特質(有點像你試圖實現與行爲): -

class Example extends Entity 
{ 
    use TitleTrait; 
} 

trait TitleTrait 
{ 

    protected function _setTitle($title) 
    { 
     return $title; 
    } 

} 

第二種方式是通過繼承: -

class Example extends CustomEntity 
{ 

} 

abstract class CustomEntity extends Entity 
{ 

    protected function _setTitle($title) 
    { 
     return $title; 
    } 

} 
+0

感謝您的回答。我應該從第一種方式將特徵代碼放在哪裏? – dav

+0

@dav它取決於你(我認爲)。我親自創建一個'src/Traits'目錄並將它們放在那裏。 – drmonkeyninja

+1

非常感謝,效果很好(使用第一種情況);) – dav