2016-04-04 8 views
1

ein, die etwas mit yii2 Active record nimmt. Es möchte keine Daten in die Tabelle einfügen. Es legen Sie einfach null`s Bitte, Beratungyii2 Aktiver Datensatz fügt leere Zeile

Tabelle:

CREATE TABLE projects (
    p_id int(11) NOT NULL AUTO_INCREMENT, 
    p_name varchar(50) DEFAULT NULL, 
    p_create_date datetime DEFAULT NULL, 
    p_last_update datetime DEFAULT NULL, 
    p_active tinyint(4) DEFAULT NULL, 
    p_comment varchar(255) DEFAULT NULL, 
    PRIMARY KEY (p_id) 
) 
ENGINE = INNODB 
CHARACTER SET utf8 
COLLATE utf8_general_ci; 

Code:

use yii\db\ActiveRecord; 

class Projects extends ActiveRecord 
{ 
    public $p_id; 
    public $p_name; 
    public $p_comment; 
    public $p_create_date; 
    public $p_last_update; 
    public $p_active; 

} 

Nutzung

$project = new Projects(); 
$project->p_name = 'asdfasdfasdf'; 
$project->save(); 

Ergebnis https://monosnap.com/file/272s92Z5oQkNXWEZc7lO2lExLgDZS2

nach -> save(), Projekten Objekt wie

object(app\models\Projects)#78 (14) { 
    ["p_id"]=> 
    NULL 
    ["p_name"]=> 
    string(9) "asdasdasd" 
    ["p_comment"]=> 
    NULL 
    ["p_create_date"]=> 
    NULL 
    ["p_last_update"]=> 
    NULL 
    ["p_active"]=> 
    NULL 
    ["_attributes":"yii\db\BaseActiveRecord":private]=> 
    array(1) { 
     ["p_id"]=> 
     int(19) 
    } 
    ["_oldAttributes":"yii\db\BaseActiveRecord":private]=> 
    array(1) { 
     ["p_id"]=> 
     int(19) 
    } 
    ["_related":"yii\db\BaseActiveRecord":private]=> 
    array(0) { 
    } 
    ["_errors":"yii\base\Model":private]=> 
    array(0) { 
    } 
    ["_validators":"yii\base\Model":private]=> 
    object(ArrayObject)#80 (1) { 
     ["storage":"ArrayObject":private]=> 
     array(0) { 
     } 
    } 
    ["_scenario":"yii\base\Model":private]=> 
    string(7) "default" 
    ["_events":"yii\base\Component":private]=> 
    array(0) { 
    } 
    ["_behaviors":"yii\base\Component":private]=> 
    array(0) { 
    } 
    } 
+0

zeigen Sie Ihre Aktion erstellen verwandte Aktion Controller – scaisEdge

Antwort

2

sehen Sie entfernen müssen (oder einen Kommentar wie unten), um die Öffentlichkeit var Sie zum Modell hinzugefügt ..

Verwendung yii \ db \ Active;

class Projects extends ActiveRecord 
{ 
    /* public $p_id; 
     public $p_name; 
     public $p_comment; 
     public $p_create_date; 
     public $p_last_update; 
     public $p_active; 
    */ 
    public function rules() 
    { 
     return [ 
      [['p_create_date', 'p_last_update', 'p_active'], 'safe',], 
      [['codice_istat_comune_alfanum'], 'string', 'max' => 6], 
      [['p_name', ], 'string', 'max' => 64], 
      [['p_comment'], 'string', 'max' => 255] 
     ]; 
    } 



} 

die Öffentlichkeit var Sie hinzugefügt Schatten/die ursprüngliche var durch yii2 aktive Datensatz Einsparung in db erstellt außer Kraft setzt

Sie public var auf das Modell nur für berechneten Wert hinzufügen sollen und nie für db Wert

+0

dies hilft. dumme Frage. was für als die Klasse überhaupt? übergeordnete Methoden, Validierung etc.? – Subdigger

+0

Erkläre besser ... bitte ... – scaisEdge

+0

newermind. tnx für schnelle Antwort – Subdigger

0

prüfen Validierungsfehler:

$model->validate(); 
var_dump($model->errors); 

Wenn Sie Validierungsfehler haben, Modell werden nicht gespeichert.

Verwandte Themen