2015-02-26 1 views
0

мое приложение имеет 2 таблицы в 1 DB. Один из них называется USER (id, uname, pw, role), другой - USERZ (id, files, USER_id, name) для файлов. Существует отношение HAS_MANY и BELONGS_To к обеим таблицам.Yii privatekey of Записанный пользователем

Я вижу Дисплей пользователей и все файлы. Но то, что я whant сделать, чтобы увидеть только файлы для каждого пользователя (так что пользователь с идентификатором = 1 не может видеть файлы от пользователя с идентификатором = 2)

Мой контроллер выглядит следующим образом:

<?php 
class SiteController extends Controller 
{ 
    ... 
    public function actionVerwal() 
    { 
     $model=new USER; 
     $model2=new USERZ; 
     $this->render('verwal',array('model'=>$model,'model2'=>$model2)); 
    } 
... 
} 

Мой Вид verwal.php:

<?php 
$dataProvider=new CActiveDataProvider($model2); 
?> 

<h1>List of Your Files<i></h1> 

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$model2->a($model2->id) 
    , 'columns'=>array(
     'id', 'zname', 'USER_id' 
    ) 
)); 
    ... 
?> 

My Model USERZ имеет FUNKTION которым выглядит следующим образом:

public function a($id) 
    { $criteria=new CDbCriteria; 
     $criteria->compare('USER_id', $id); 
     return new CActiveDataProvider($this, array(
      'criteria'=>$criteria, 
     )); 
    } 

Итак, я получаю список со всеми файлами. Я не знаю, как изменить сравнение USER_id только с идентификатором от зарегистрированного пользователя USER, поэтому я могу получить файлы с жестким диском и не все

ответ

2

Hmmm, $criteria->compare('USER_id', $id, true); Почему вы используете третий параметр здесь? Удалите его или установите как false. Его

$ partialMatch следует ли значение рассмотреть частичный текст матч (с помощью LIKE и NOT LIKE операторов). По умолчанию используется значение false, что означает точное сравнение.

Чтобы получить LOGGED идентификатор пользователя в Yii вы можете использовать Yii::app()->user->getId();

+0

Я удалил его, он был leftbehind от другой вещи я whanted проверить. Но это ничего не меняет. Спасибо за объяснение – GEnGEr

+0

ok i changed - 'dataProvider' => $ model2-> a ($ model2-> id) - до \t 'dataProvider' => $ model2-> a (Yii :: app() -> user-> getId()), но теперь ни один идентификатор не подходит ... и я думаю, что его, потому что, если я эхо Yii :: app() -> user-> getId(), я получаю uname instad id – GEnGEr

+0

Хм это должно Это не так ... Проверьте класс UserIdentity и выполните поиск того, что вы сохраняете до свойства id ($ this -> _ id). –

Смежные вопросы