model: user, ActiveRecord перезапись primary_key: user_id
model: user, ActiveRecord перезапись primary_key: user_id
юзер создается 1 раз если валидное мыло. Поле user_id - primary_key с автоинкрементом.
в дальнейшем используется метод save() только для обновления записи - поиск идет по email и user_id
то есть new UserModel используется единожды.
и вот в один прекрасный момент user_id обновляется на последнее+1 значение автоинкремента.
кто нибудь сталкивался с таким поведением модели?
в дальнейшем используется метод save() только для обновления записи - поиск идет по email и user_id
то есть new UserModel используется единожды.
и вот в один прекрасный момент user_id обновляется на последнее+1 значение автоинкремента.
кто нибудь сталкивался с таким поведением модели?
Re: model: user, ActiveRecord перезапись primary_key: user_i
Нет) не сталкивался.
А у тебя правда интересует только то, кто сталкивался, а кто нет?
А у тебя правда интересует только то, кто сталкивался, а кто нет?
Re: model: user, ActiveRecord перезапись primary_key: user_i
В какой-такой " прекрасный момент" ? Вообще у всех записей меняется id, или только у конкретной записи при сохранении модели?
При таком раскладе id изменяется?
Думаю, найти решение было бы проще, если бы были предоставлены: модель, поведения (если имеются), таблица, ну и кусок контроллера.
Код: Выделить всё
<?php
public function actionIndex()
{
$model = UserModel::model()->findByPk(4);
$model->save();
}
?>
Думаю, найти решение было бы проще, если бы были предоставлены: модель, поведения (если имеются), таблица, ну и кусок контроллера.
Re: model: user, ActiveRecord перезапись primary_key: user_i
>При таком раскладе id изменяется?
нет...
смысла код приводить особого нет.
1 создание юзера ($user = new UserModel;$user->username='sss';$user->save();)
2 обновление статуса ($user = UserModel::model()->findByPk(4);$user->status='active';$user->save();)
ну еще юзаю
$user=UserModel::model()->find('email=:email', array(':email'=>$_POST['email']));
модель
последнее вчера дописал
таблица
нет...
смысла код приводить особого нет.
1 создание юзера ($user = new UserModel;$user->username='sss';$user->save();)
2 обновление статуса ($user = UserModel::model()->findByPk(4);$user->status='active';$user->save();)
ну еще юзаю
$user=UserModel::model()->find('email=:email', array(':email'=>$_POST['email']));
модель
Код: Выделить всё
class User extends CActiveRecord
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return 'users';
}
public function primaryKey()
{
return 'user_id';
}
}
таблица
Код: Выделить всё
CREATE TABLE IF NOT EXISTS `users` (
`user_id` int(10) NOT NULL AUTO_INCREMENT,
`user_date_added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`user_status` varchar(10) NOT NULL DEFAULT 'disabled',
`user_type` varchar(10) NOT NULL DEFAULT 'general',
`username` varchar(50) NOT NULL,
`password` varchar(32) NOT NULL DEFAULT '24a453d9b54b8bf16fbc060698082631',
`email` varchar(50) NOT NULL,
`user_movies_count` int(10) NOT NULL DEFAULT '0',
`user_violations_count` int(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`user_id`),
KEY `date_added` (`user_date_added`),
KEY `user_violations` (`user_violations_count`),
KEY `user_movies_count` (`user_movies_count`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;
Re: model: user, ActiveRecord перезапись primary_key: user_i
сейчас глянул - еще user_type на дефолтный сбрасывается
Re: model: user, ActiveRecord перезапись primary_key: user_i
У тебя модель User, а ты ищешь UserModel::model()->findByPk(4); это как?
Re: model: user, ActiveRecord перезапись primary_key: user_i
писал быстро тут, считайте они одинаковы
Re: model: user, ActiveRecord перезапись primary_key: user_i
ну как минимум код модели предоставлен не полностью, чтобы о чем-то судить.
Смотрите методы before*, смотрите поведения.
Смотрите методы before*, смотрите поведения.
Re: model: user, ActiveRecord перезапись primary_key: user_i
код модели представлен полностью выше.
но я уже понял, что ответа не будет буду как обычно сам, топик можно закрывать
но я уже понял, что ответа не будет буду как обычно сам, топик можно закрывать
Re: model: user, ActiveRecord перезапись primary_key: user_i
Код: Выделить всё
public function primaryKey()
{
return 'user_id';
}
http://www.yiiframework.com/doc/api/1.1 ... y()-detail
This method is meant to be overridden in case when the table is not defined with a primary key (for some legency database). If the table is already defined with a primary key, you do not need to override this method.
Re: model: user, ActiveRecord перезапись primary_key: user_i
я писал раньше
>последнее вчера дописал
то есть это не влияет на баг никоим образом
>последнее вчера дописал
то есть это не влияет на баг никоим образом