2017-01-17 2 views
1

J'ai une application de base yu où test est table de base de données id, nomGénérer typage statique du nom de la colonne dans le dossier actif yu

et modèles

class Test extends ActiveRecord 
{ 

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

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

quand je déclare un nom de $/$ champ id dans Test class.Il ne lie pas au nom de colonne de base de données?

Y at-il un moyen de déclarer nom public $; et obtenir les données/ou définir les données par typage statique?

Comme une déclaration public nom $; et dans le contrôleur

$test=new Test(); 

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

son devrait fonctionner, Que voulez-vous dire par ne pas travailler? –

+0

si vous décommentez // public $ name; cette ligne ne fonctionne pas !!!! –

+0

Est-ce que le nom et l'id sont des champs de colonne de table –

Répondre

3

Vous ne doit pas déclarer des propriétés de la classe ActiveRecord du même nom que les colonnes de base de données mis en correspondance.

Les propriétés mappées sont récupérées automatiquement et vous y avez accès à l'aide de getters et de setters standard.

Si vous déclarez une propriété comme dans votre exemple, les valeurs de propriété ne sont pas extraites de la base de données.

+0

alors comment rendre mon type statique de colonne 'name'? –

+0

Toutes les colonnes de base de données mappées sont des propriétés publiques converties au type approprié en fonction du schéma de base de données. Qu'aimeriez-vous réaliser? Peut-être que je peux aider. – Bizley

+0

en générant la suggestion du compilateur avec. .Dois-je déclarer l'objet de test t.so t-> name = "set data"? et le nom est un code fixe et lisible dans le modèle –