Поиск по таблице

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Закрыто
slip912
Сообщения: 2
Зарегистрирован: 2013.05.16, 14:52

Поиск по таблице

Сообщение slip912 »

Имеется таблица ([id],[material_id],[user_id],value]. Назначение : когда пользователь голосует за материал в таблицу добавляется запись. Мне необходимо определить голосовал ли пользователь до этого. Пытался как то так
$value=$_GET['value'];
$post=$_GET['post'];
$criteria=new CDbCriteria;
$criteria->condition='material_id=:material_id';
$criteria->params=array(':material_id'=>$post);
$criteria->condition='user_id=:user_id';
$criteria->params=array(':user_id'=>$value);
-----------------не понимаю с помощью чего мне получить тип boolean
Rustavely
Сообщения: 9
Зарегистрирован: 2013.04.14, 10:22

Re: Поиск по таблице

Сообщение Rustavely »

Возможно, вам поможет http://www.yiiframework.com/doc/api/1.1 ... sts-detail
R3D3
Сообщения: 352
Зарегистрирован: 2010.04.11, 14:52

Re: Поиск по таблице

Сообщение R3D3 »

Код: Выделить всё

$criteria->condition='material_id=:material_id';
$criteria->params=array(':material_id'=>$post);
$criteria->condition='user_id=:user_id';
$criteria->params=array(':user_id'=>$value); 
 
Два последних присваивания затрут два первых и условие в итоге будет неправильным.
Yii Jabber Conference: yii@conference.jabber.ru
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: Поиск по таблице

Сообщение flashimage »

Ну в вкратце так: в beforeValidate проверяешь есть ли запись с таким user_id и material_id обычным запросом, если она есть говоришь, что это редактирование - $this->setIsNewRecord(false); В итоге сколько бы человек не голосовал, но будет лишь редактировать одну запись
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
slip912
Сообщения: 2
Зарегистрирован: 2013.05.16, 14:52

Re: Поиск по таблице

Сообщение slip912 »

Благодарю за помощь, очень помогло.Так же нашол эту тему на форуме (viewtopic.php?f=3&t=7063) Итого получилось как-то так

Код: Выделить всё

public function actiontool()
{
    $value=$_GET['value'];
    $post=$_GET['post'];
    $condition='material_id=:material_id AND user_id=:user_id';
    $params=array(':material_id'=>$post, 'user_id'=>Yii::app()->user->id);
     $exists=  Raiting::model()->exists($condition,$params); 
     if($exists)
     {
         echo $value;
         echo $post;
         echo 1;
     }
}
Закрыто