我在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...