HazardCSS  
            (Komduv)
           
           
          
              
                February 5, 2015, 12:07pm
               
               
          1 
           
         
        
          Не могу понять в чем дело, подскажите где затупил
В rules прописал
[['CODE'], 'required'],
[['SORT'], 'integer'],
 
дергаю
$model = new Products;
$model->attributes = ['CODE' => 111, 'SORT' => 222];
$model->save();
 
В итоге в БД вижу запись, но все поля NULL так как по умолчанию стоит null, т.е. не могу задать атрибуты почему-то, getErrors пустой. getAttributes возвращает поля, все нормально, а в БД записать мы не можем( С yii2 мало работал, может есть какой-то свой подвох который я не вижу?
         
         
           
        
            
            
            
         
         
             
             
          
            
       
      
        
          
          
            gismo  
            (Gismo05)
           
           
          
              
                February 5, 2015, 12:40pm
               
               
          2 
           
         
        
          Попробуйте так:
$model = new Products(['CODE' => 111, 'SORT' => 222]); // в этом случае не будет проверки валидаторов
$model->save();
 
или
$model = new Products;
$model->setAttributes(['CODE' => 111, 'SORT' => 222]); // в этом случае будут присвоены только безопасные атрибуты (покрытые валидаторами)
$model->save();
 
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            HazardCSS  
            (Komduv)
           
           
          
              
                February 5, 2015,  1:02pm
               
               
          3 
           
         
        
          Gismo, спасибо за ответ, я это уже все пробовал, все равно запись создает, но в поля ничего не пишет, т.е. в sql что-то вроде field = Null
Можно как-то посмотреть какой запрос построил AR, вот тут (http://www.yiiframework.com/doc-2.0/yii-db-activerecord.html ) не нашел public метода класса ar который вернул бы что-нибудь подобное
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            gismo  
            (Gismo05)
           
           
          
              
                February 5, 2015,  2:05pm
               
               
          4 
           
         
        
          http://yiigist.com/package/yiisoft/yii2-debug#?tab=readme 
вот это расширение установите, там будут показываться все запросы к БД прямо на сайте.
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            ineersa  
            (Ineersa)
           
           
          
              
                February 6, 2015, 10:52am
               
               
          5 
           
         
        
          
 HazardCSS:
 
Не могу понять в чем дело, подскажите где затупил
В rules прописал
[['CODE'], 'required'],
[['SORT'], 'integer'],
 
дергаю
$model = new Products;
$model->attributes = ['CODE' => 111, 'SORT' => 222];
$model->save();
 
В итоге в БД вижу запись, но все поля NULL так как по умолчанию стоит null, т.е. не могу задать атрибуты почему-то, getErrors пустой. getAttributes возвращает поля, все нормально, а в БД записать мы не можем( С yii2 мало работал, может есть какой-то свой подвох который я не вижу?
 
 
Добавьте поля в safe, вы же масс ассигном пытаетесь их добавить.
И да дебаггер в помощь, там в этом случае warning выдает.
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          Возможно, уже некропост, но решил и сам проверить (особенно ввиду коммента  ineersa).
Не добавлялось оно исключительно из-за несовпадения регистров букв:
$model = new Products;
$model->attributes = ['code' => 111, 'sort' => 222]; //а не CODE и SORT
$model->save();
 
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          
А зачем? Насколько мне известно, все ат-ты в Yii2 по умолчанию safe, если они упоминаются в rules().
Скорее, подобная ситуация могла бы возникнуть в таком случае:
public function scenarios () {
	$scenarios['default'] = ['!code', '!sort'];
	return $scenarios;
}
 
Но, я думаю, написав такое, HazardCSS знал бы, в чём дело 
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            ilyaBob  
            (ilyaBob)
           
           
          
              
                December 6, 2023,  3:13am
               
               
          8 
           
         
        
          Было что то похожее. В в модели от ActiveRecord указал свойства в виде public $user_id = null; 
и всё что добавлялось становилось null.