@pashaa

Yii2 если специальный метод который меняет только те поля в бд для которые пришли данные?

email,lastName,firstName ,middleName,birthday ,password метод меняет эти поля в таблице. Есть ли метод который позволяет не используя if для проверки на null изменять поля?
class ChangeCustomer extends Model
{

    public $email;
    public $_csrf;
    public $firstName;
    public $lastName;
    public $middleName;
    public $birthday;
    public $password;

    public function rules(){
        return[
            ['_csrf','required'],                        
            ['email','email'],                                         
            ['email','unique','targetClass' => Customer::className()], 
            [['lastName','firstName','middleName','birthday','password'],'safe'],
        ];
    }
//Если значения будут null которые менять не надо то проверять только if? 
    public function change(){
        $user = Customer::findIdentityByAccessToken($this->_csrf);
        $user->email = $this->email;
        $user->lastName = $this->lastName;
        $user->firstName = $this->firstName;
        $user->middleName = $this->middleName;
        $user->birthday = $this->birthday;
        $user->password = $this->password;
        return $user->save();
    }
}
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Можно написать свой метод load вместо стандартного и там проверять, но Вы решаете не ту проблему. Ваша проблема в том, что у Вас null приходит, чего не должно быть. Откуда в Вашем post запросе взялись null?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы