在我的数据库,我有项目表至极有如何检查,如果阵列auntheticated用户从数据库
project
id | title | users |
1 | First | 1,2,3 |
2 | Second| 2,6 |
如何检查的Yii ::应用程序() - 包含在用户现场>用户> ID?我想检查,如果true
然后在gridview中显示行。
我必须使用哪个$标准?请建议解决的路径。
在我的数据库,我有项目表至极有如何检查,如果阵列auntheticated用户从数据库
project
id | title | users |
1 | First | 1,2,3 |
2 | Second| 2,6 |
如何检查的Yii ::应用程序() - 包含在用户现场>用户> ID?我想检查,如果true
然后在gridview中显示行。
我必须使用哪个$标准?请建议解决的路径。
使用LIKE
查询为检查您的user id
是否存在于users column
。
$user = Yii::app()->user->id;
$result = Yii::app()->db->createCommand('SELECT * FROM project WHERE users LIKE "%'.$user.'%"')->queryAll();
if(count($result)){
//Your other scripts to show in grid view
}
如果你有Project
模型class
那么你也可以使用:
$user = Yii::app()->user->id;
$criteria = new CDbCriteria;
$criteria->select = '*';
$criteria->compare('t.users', $user, true);
$results = Project::model()->findAll($criteria);
像这样构建查询是不安全的,因为它打开了SQL注入的可能性。 Yii的经验是,我很少需要使用普通的旧SQL查询,因为大多数情况下可以使用CActiveRecord方法和其他可用(和更安全)的数据库类来完成。 另请参阅: http://www.yiiframework.com/wiki/199/creating-a-parameterized-like-query/ $ q = new CDbCriteria(); $ q-> addSearchCondition('content',$ userId); $ projects = Project :: model() - > findAll($ q); – 2014-08-30 07:51:56
检查[这](http://stackoverflow.com/questions/11397700/how-use-like-in -yii-query-builder)和[this](http://www.yiiframework.com/forum/index.php/topic/29747-using-mysql-regexp-in-cdbcriteria/)。这有帮助吗? – katsanva 2014-08-29 14:32:04