Получить идентификатор из сеанса public function search () в Yii1 - PullRequest
0 голосов
/ 12 октября 2018
public function search()
{
    // @todo Please modify the following code to remove attributes that should not be searched.

    $criteria=new CDbCriteria;
    $criteria->addCondition('id=1');

    $criteria->compare('id',$this->id);
    $criteria->compare('login',$this->login,true);
    $criteria->compare('name',$this->name,true);
    $criteria->compare('password',$this->password,true);
    $criteria->compare('random_pass',$this->random_pass,true);
    $criteria->compare('default_number_of_devices',$this->default_number_of_devices);

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
         'sort'=>array('defaultOrder'=>'name ASC',)


    ));
}

Я использую идентификатор 1, как $criteria->addCondition('id=1'), это не автоматически, просто отображать запись с id=1, как я могу получить автоматический идентификатор при входе в сезон пользователя.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

В вашем методе search() уже есть код для фильтрации по идентификатору пользователя:

$criteria->compare('id',$this->id);

Все, что вам нужно сделать, это установить для свойства id модели идентификатор текущего.Таким образом, действие вашего контроллера должно выглядеть следующим образом:

$model = new MyModel('search');
if (isset($_POST['MyModel'])) {
    $model->attributes = $_POST['MyModel'];
}
if (Yii::app()->user->isGuest) {
    Yii::app()->user->loginRequired();
}
$model->id = Yii::app()->user->id;

$dataProvider = $model->search();

Вы не должны использовать Yii::app()->user непосредственно в вашей модели - это нарушает шаблон MVC, и вы не сможете использовать этот метод в консоли дляпример.Глобальное состояние должно обрабатываться и передаваться в модель на уровне контроллера.

0 голосов
/ 12 октября 2018
public function search()
{
    // @todo Please modify the following code to remove attributes that should not be searched.

    $criteria=new CDbCriteria;
    $sas= Yii::app()->user->id;
    $criteria->addCondition("id=$sas");
    $criteria->compare('id',$this->id);
    $criteria->compare('login',$this->login,true);
    $criteria->compare('name',$this->name,true);
    $criteria->compare('password',$this->password,true);
    $criteria->compare('random_pass',$this->random_pass,true);
    $criteria->compare('default_number_of_devices',$this->default_number_of_devices);
    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
         'sort'=>array('defaultOrder'=>'name ASC',)


    ));
}

desc id как этот $ sas = Yii :: app () -> user-> id;я думаю, что это работает

...