在我的數據庫,我有項目表至極有如何檢查,如果陣列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