2017-02-13 8 views
0
$myModel = new CustomModel(); 
$myModel->myVal = 'foo'; 
$myModel->anotherVal = 'bar'; 
var_dump($myModel);    //return a CustomModel object 
var_dump($myModel->validate()); //return true 
var_dump($myModel->getErrors()); //return an empty array 
var_dump($myModel->save());  //return true 
var_dump($myModel->save(false)); //return true 

Это стандартный код для использования модели в Yii. В моем originController код такой же, как и в моей mySql DB. Но в моем другом контролере все работает нормально.Model-> save() => Тот же код другого контроллера, но не имеет такого же поведения

Кто-нибудь знает, как это возможно? Эта «ошибка» сводит меня с ума!

Спасибо всем :)

Обновление: $ myModel-> Сохранить (ложь) уже проверить и такое же поведение

CustomModel.php

<?php 

/** 
* This is the model class for table "CustomTable". 
* 
* The followings are the available columns in table 'CustomTable': 
* @property integer $customModel_id 
* @property integer $customModel_legaldocid 
* @property integer $customModel_userid 
* @property string $customModel_datelastview 
* @property string $customModel_dateaccepted 
*/ 
class CustomModel extends CAActiveRecord 
{ 
    /** 
    * Returns the static model of the specified AR class. 
    * @param string $className active record class name. 
    * @return LegalDocumentRead the static model class 
    */ 
public static function model($className=__CLASS__) 
{ 
    return parent::model($className); 
} 

/** 
* @return string the associated database table name 
*/ 
public function tableName() 
{ 
    return 'CustomTable'; 
} 

/** 
* @return array validation rules for model attributes. 
*/ 
public function rules() 
{ 
    // NOTE: you should only define rules for those attributes that 
    // will receive user inputs. 
    return array(
     array('customModel_id, customModel_legaldocid, customModel_userid', 'numerical', 'integerOnly'=>true), 
     array('customModel_datelastview, customModel_dateaccepted', 'safe'), 
     // The following rule is used by search(). 
     // Please remove those attributes that should not be searched. 
     array('customModel_id, customModel_legaldocid, customModel_userid, customModel_datelastview, customModel_dateaccepted', 'safe', 'on'=>'search'), 
    ); 
} 

/** 
* @return array relational rules. 
*/ 
public function relations() 
{ 
    // NOTE: you may need to adjust the relation name and the related 
    // class name for the relations automatically generated below. 
    return array(
    ); 
} 

/** 
* @return array customized attribute labels (name=>label) 
*/ 
public function attributeLabels() 
{ 
    return array(
     'customModel_id' => 'customModel', 
     'customModel_legaldocid' => 'customModel Legaldocid', 
     'customModel_userid' => 'customModel Userid', 
     'customModel_datelastview' => 'customModel Datelastview', 
     'customModel_dateaccepted' => 'customModel Dateaccepted', 
    ); 
} 

/** 
* Retrieves a list of models based on the current search/filter conditions. 
* @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions. 
    */ 
public function search() 
{ 
    // Warning: Please modify the following code to remove attributes that 
    // should not be searched. 

    $criteria=new CDbCriteria; 

    $criteria->compare('customModel_id',$this->customModel_id); 
    $criteria->compare('customModel_legaldocid',$this->customModel_legaldocid); 
    $criteria->compare('customModel_userid',$this->customModel_userid); 
    $criteria->compare('customModel_datelastview',$this->customModel_datelastview,true); 
    $criteria->compare('customModel_dateaccepted',$this->customModel_dateaccepted,true); 

    return new CActiveDataProvider($this, array(
     'criteria'=>$criteria, 
    )); 
} 
+0

Пожалуйста, прочитайте [Какие темы я могу задать] (http://stackoverflow.com/help/on-topic) и [Как задать хороший вопрос] (http://stackoverflow.com/ help/how-to-ask) и [идеальный вопрос] (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) и как создать [Минимальный, Полный и проверяемый пример] (http://stackoverflow.com/help/mcve) – RiggsFolly

+0

У вас есть ошибки? – Matheno

+0

Ничего. Все работает отлично, за исключением того, что у моего db нет новой записи. –

ответ

0

Обновление: проблема решена Некоторые неправильные внешние ключи на моем mySql db. Но yii ничего не говорит об этом. Спасибо всем

0

Это может быть связана с факт, что у вас есть правило валидации в вашем CustomModel, которое не удовлетворено в вашем тесте.

попробуйте использовать

$myModel->save(false); 

или

var_dump($myModel->save(false));  

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

+0

Извините, я уже проверил это и ничего в БД. –

+0

обновите свой вопрос и добавьте код CostumModel .. и весь код для действия в вашем примере .please – scaisEdge

+0

Поле myVal и anotheVal не в вашей модели .. поэтому, пожалуйста, обновите тестовый код с правильным именем .. – scaisEdge