Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Kondrat Гость цитировать
|
Добавлено: 06 Май 2008 14:47:41 Заголовок сообщения: find и типы переменных. запутался. |
|
|
сделал табличку Tag. сохранил таг 'name' 99ru, 'id' 10.
потом сохраняю таг 99 (ищу если ли такой findByName), но... PHP приводит типы, находит, что 99 уже есть, 'id' 10. Пробовал устанавливать тип, не помогает. Что делать? |
|
Вернуться к началу |
|
|
Kondrat Гость цитировать
|
Добавлено: 06 Май 2008 16:55:23 Заголовок сообщения: |
|
|
база данных:
Код: |
CREATE TABLE /*!32312 IF NOT EXISTS*/ `tags` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
#
# Dumping data for table 'tags'
#
/*!40000 ALTER TABLE `tags` DISABLE KEYS*/;
LOCK TABLES `tags` WRITE;
REPLACE INTO `tags` (`id`, `name`) VALUES (1,'99ru');
UNLOCK TABLES;
/*!40000 ALTER TABLE `tags` ENABLE KEYS*/;
|
Контроллер
Код: |
<?php
class TagsController extends AppController {
function add() {
if ( !empty($this->data) ) {
if( $this->Tag->findByName($this->data['Tag']['name']) ) {
debug ($this->data['Tag']['name']);
debug( $this->Tag->findByName($this->data['Tag']['name']) );
} else {
echo 'no tag';
}
}
}
}
?>
|
View: add.ctp
Код: |
<div class="tags form">
<?php echo $form->create('Tag');?>
<legend><?php __('Add tag');?></legend>
<?php
echo $form->input('name');
?>
<?php echo $form->end('Submit');?>
</div>
|
Потом проверяю 99.
ХЕЛП!!! |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 06 Май 2008 23:28:16 Заголовок сообщения: |
|
|
Если у тебя id -> autoincrement
Зачем ты вносишь значение ?
INSERT INTO `tags` (`id`,`name`)
VALUES(NULL,'99ru') |
|
Вернуться к началу |
|
|
Kondrat Гость цитировать
|
Добавлено: 07 Май 2008 10:39:03 Заголовок сообщения: |
|
|
я значение id не вношу, просто дамп таблички вставил.
Видно это баг Cake'а , те я для эксперимента на паре Cake сайтов зарегистрировался:
вначале регистрировал username 1234556566bla, потом 123455656
и получал, что такой юзер уже есть. |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 07 Май 2008 15:43:24 Заголовок сообщения: |
|
|
Ага, не "кавычит". |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 07 Май 2008 17:36:22 Заголовок сообщения: |
|
|
Kondrat
Что-то вообще не понятно, что ты хошь сделать..
Давай делатьно. сокращения нах.. |
|
Вернуться к началу |
|
|
Kondrat Гость цитировать
|
Добавлено: 07 Май 2008 19:11:02 Заголовок сообщения: |
|
|
Все просто, попробуй в своем Cake проекте:
к примеру хочу зарегистрироваться.
1. выбираю ник 007agent.
2 Регистрируюсь.
3. другой юзер хочет ник 007.
4 регистрируется. Получает message, что такой уже есть. |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 07 Май 2008 19:25:45 Заголовок сообщения: |
|
|
Цитата: | к примеру хочу зарегистрироваться.
1. выбираю ник 007agent.
2 Регистрируюсь.
3. другой юзер хочет ник 007.
4 регистрируется. Получает message, что такой уже есть. |
У меня все регистрирует, это ты что-то забуровил...
Вот мой дамп таблицы
Цитата: | --
-- Структура таблицы `users`
--
CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(40) collate utf8_unicode_ci NOT NULL,
`password` varchar(40) collate utf8_unicode_ci NOT NULL,
`email` varchar(255) collate utf8_unicode_ci NOT NULL,
`last_login` datetime NOT NULL,
`is_moder` tinyint(4) NOT NULL default '0',
`is_admin` tinyint(4) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`,`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=16 ; |
|
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 07 Май 2008 19:28:07 Заголовок сообщения: |
|
|
На первый взгляд бредовый результат..
Включи debug 2 и посмотри какой запрос уходит в базу, на которые он отвечает что такая запись есть.
У меня лично не было такого.. |
|
Вернуться к началу |
|
|
Igor-san
цитировать
Зарегистрирован: 20 Апр 2008 14:03:15 Сообщения: 2
|
Добавлено: 07 Май 2008 19:28:10 Заголовок сообщения: |
|
|
Что-то похожее и у меня, пока изучаю пекарню, и убрал проверку на валидность email. Так вот, есть допустим юзер 123 с емайлом 123@test.ru
Завожу юзера 345 с емайлом 123, и Саке выдает, что такой юзер уже есть. Пока допер,откуда ноги растут, ну в реальной ситуации с проверкой валидности это не страшно. Но, видно и с именем такая же петрушка. Вывод - писать собственную проверку. _________________ Учу cake_1.2.0.6311-beta |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 07 Май 2008 19:30:48 Заголовок сообщения: |
|
|
Какую версию используете? |
|
Вернуться к началу |
|
|
Igor-san
цитировать
Зарегистрирован: 20 Апр 2008 14:03:15 Сообщения: 2
|
Добавлено: 07 Май 2008 19:49:57 Заголовок сообщения: |
|
|
Я решил сразу начать с 1.2.0.6311 beta, правда, пришлось помучаться пока изучал статьи на IBM.com, но так лучше учится. _________________ Учу cake_1.2.0.6311-beta |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 07 Май 2008 20:08:43 Заголовок сообщения: |
|
|
Debug проверили? |
|
Вернуться к началу |
|
|
Kondrat Гость цитировать
|
Добавлено: 07 Май 2008 20:09:30 Заголовок сообщения: |
|
|
http://scratch.mit.edu/signup
к примеру щас попробовал, тоже самое.
Как у вас работает?
мой кусок кода тоже баг показывает. |
|
Вернуться к началу |
|
|
Kondrat Гость цитировать
|
Добавлено: 07 Май 2008 20:16:20 Заголовок сообщения: |
|
|
debug конечно цифру показывает. '999'. эту цифру находит в записи с такой же цифрой '999пример' , которая до того уже была.
если вначале записать цифру , а потом цифру с буквой, то все ок. |
|
Вернуться к началу |
|
|
|