2017-01-17 9 views
1

У меня есть YII базовое приложение, где тест является таблица базы данных идентификатор, имяГенерация статической типизации имени столбца в YII активной записи

и модели

class Test extends ActiveRecord 
{ 

    //public $name; 
    //public $id; 

    public static function tableName() 
    { 
     return '{{test}}'; 
    } 
} 

когда я объявить $ имя/$ id в тестовом классе. Не привязывается к имени столбца базы данных?

Есть ли способ объявить public $ name; и получить данные/или установить данные путем статического ввода?

Объявление public $ name; и контроллер

$test=new Test(); 

    $test->name='test2'; 
    $test->save(); //not working 
+0

его должно работать, что вы имеете в виду, если не работаете? –

+0

если вы раскомментируете // public $ name; эта линия не работает !!!! –

+0

Является ли имя и идентификатор файлами столбцов таблицы –

ответ

3

You не должны объявлять свойства класса ActiveRecord тем же именем, отображенных столбцов базы данных.

Свойства с отображением автоматически выбираются, и у вас есть доступ к ним, используя стандартные геттеры и сеттеры.

Если вы объявляете свойство, как в вашем примере, значения свойств не извлекаются из базы данных.

+0

, то как сделать мой статический тип «name»? –

+0

Все сопоставленные столбцы базы данных представляют собой общедоступные свойства, отнесенные к соответствующему типу на основе схемы БД. Что бы вы хотели достичь? Может быть, я могу помочь. – Bizley

+0

, генерируя предложение компилятора с помощью. .Say я объявляю тестовый объект t.so t-> name = "set data"? и имя является фиксированным и читаемым кодом в модели –

 Смежные вопросы

  • Нет связанных вопросов^_^