当值为0时,Eloquent save()不工作

时间:2017-07-11 17:47:21

标签: php mysql laravel

我在laravel之外使用雄辩,一切都很好。

但我现在遇到了一个真正的问题。

我有这段代码:

public function setUserIsGone($userInstance) {

    //$this->database->refresh();

    //$this->setUserIsOffline($userInstance, false);
    //$this->setUserIsNotReady($userInstance, false);
    /*
    if ($this->database->id_user_1 == $userInstance->database->id) {
         $this->database->id_user_1 = 0;
    }

    if ($this->database->id_user_2 == $userInstance->database->id) {
        $this->database->id_user_2 = 0;
    }

    if ($this->database->id_user_3 == $userInstance->database->id) {
        $this->database->id_user_3 = 0;
    }

    if ($this->database->id_user_4 == $userInstance->database->id) {
         $this->database->id_user_4 = 0;
    }
    */
    $this->database->infos = "aaaaaaaaa";    // suscessful updated the record
    $this->database->id_user_2 = 0;

    print_r($this->database->id_user_2 . "\n");  // nonono, nothing changed!!! WTF?
    print_r($this->database->save() . "\n");
    print_r($this->database->id_user_2 . "\n");

    // die('DONE');

    //$this->broadcastRoomUpdates();

}

现在的问题是。

我在$this->database中有一个模型实例,我想将id_user_2设置为0,但在save()之后没有任何变化。我添加了$this->database->infos = "aaaaaaa"保存,但id_user_2仍然是旧值。

id_user_2是表

中的int(11)

帮助!

模型文件中没有任何内容:

<?php

class Room extends Illuminate\Database\Eloquent\Model {

}

&GT;

表:

  

CREATE TABLE cola_rooms(     id int(11)NOT NULL,     id_user_1 int(11)NOT NULL DEFAULT'0',     id_user_2 int(11)NOT NULL DEFAULT'0',     id_user_3 int(11)NOT NULL DEFAULT'0',     id_user_4 int(11)NOT NULL DEFAULT'0',     id_match int(11)NOT NULL DEFAULT'0',     number int(6)NOT NULL DEFAULT'0',     rules varchar(255)NOT NULL DEFAULT'{}',     infos文本NOT NULL,     created_at datetime DEFAULT NULL,     updated_at datetime DEFAULT NULL   )ENGINE = InnoDB DEFAULT CHARSET = utf8;

请看代码。 当我跑到

$this->database->infos = "aaaaaaaaa";
$this->database->id_user_2 = 0;
print_r($this->database->id_user_2 . "\n");

现在print_r的结果为0,表示正确。 然后我再次保存()模型和print_r,是的,它是0。

但实际上在mysql表中,id_user_2仍然是旧值,而不是0.但infos成功改变(aaaaaaaa)。

我尝试将id_user_2设置为100,15,34等......每个数字都有效,但实际上不能为0。

$this->database->id_user_2 = 10;  // OK
$this->database->id_user_2 = 0;   // NONONO...

0 个答案:

没有答案