2

私が知っているように、次のバリアントでテーブル名を定義することが可能です:

1) メソッド getSource() を定義することによって

class Table1 extends \Phalcon\Mvc\Model 
{
    public function getSource()
    {
        return 'table1';
    }
}

2) $_source プロパティを定義することにより

protected $_source = 'table1';

3) ソーステーブルを定義する必要がある場所は? initialize() メソッドまたは __construct() で、なぜですか?

4) 他に考えられる解決策はありますか?

4

1 に答える 1

2

最良の方法はgetSource、クラスでメソッドを定義することです

public function getSource()
{
    return 'table1';
}

ただし、でを使用したり、関数を再度設定したりすることsetSource()もできinitialize()ます。$_sourceinitialize()

public function initialize()
{
    $this->setSource('table1');
}

initialize()、モデルをデータベースにバインドするために必要なすべての作業を実行し、機能が開発者に公開されるように他の操作を実行します。__construct()オブジェクトの作成時に予想されるように、が呼び出されます。

$_sourceきちんと設定していれば、どこに設定しても大きな違いはないと思います。私の個人的な好みは、に設定することgetSource()です。$_sourceそれは物事をそのように整頓し続け、私は変数を追跡する必要はありません。

于 2012-12-26T16:29:35.740 に答える