0

仮想属性はモデルを表すことができますか? このウィキを読みましたが、答えが見つかりません。

編集: 目的は、私のモデルをユーザーにとってより明確にすることです。

abstract class BaseDonnee{
    protected $info;

    public function representingColumn(){
        return 'info'; //Please, I'm not sure this is right
    }

    public function setInfo(){
        //I can set the attribute's value
        $this->info = Info::model()->find('a condition')->info;
    }

    public function getInfo(){
        return $this->info;
    }
}

編集2: コードを実行すると、例外が発生する可能性があります:

CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Nom de colonne non valide : 'info'..

どうすればそれを機能させることができますか?

4

1 に答える 1

0

はい。ただし、データプロバイダーなどによって自動的に入力されることはありません。

class User
{

    /**
     * @var Address
     */
    private $_address = null;

    public function getAddress()
    {
        return $this->_address;
    }

    public function setAddress(Address $address)
    {
        $this->_address = $address;
    }

}

次に、それを使用できます。

$user = new User;

$user->address = new Address();

var_dump($user->address->street); // Assuming class Address has street field
于 2014-10-15T13:40:48.213 に答える