У меня возникла проблема ограничения пользователя собственными данными на сайте, который я разрабатываю.Ограничение пользователя на собственные данные
В настоящее время все пользователи могут получить доступ ко всем остальным пользователям.
Я нашел этот фрагмент кода в Интернете:
public function defaultScope() {
return array(
'condition' => 'mob_num = '.YII::app()->user->getId(), // Customer can see only his orders
);
}
Это прекрасно работает, когда моя колонка представляет собой целое число, но если это строка дает мне следующую ошибку:
CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name' in 'where clause'. The SQL statement executed was: SELECT COUNT(*) FROM `mob_reg` `t` WHERE name = shayan
public function authenticate()
{
/*$users=array(
// username => password
'demo'=>'demo',
'admin'=>'admin',
);*/
// $users= Auth::model()->findByPk("8951821861");
$users = Auth::model()->findByAttributes(array('company'=>$this->username));
if($users == NULL)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if ($users->name != $this->username)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if ($users->company != $this->password)
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else if($users->company=='naga')
{
$this->errorCode=self::ERROR_NONE;
$this->setState('roles', 'super');
$this->id=$users->company;
}
else {
$this->errorCode=self::ERROR_NONE;
$this->setState('roles', 'normal');
$this->id=$users->company;
}
return !$this->errorCode;
/* if(!isset($users[$this->username]))
$this->errorCode=self::ERROR_USERNAME_INVALID;
elseif($users[$this->username]!==$this->password)
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
$this->errorCode=self::ERROR_NONE;
return !$this->errorCode;*/
}
public function getid()
{
return $this->id;
}
Вы даже прочитали сообщение об ошибке? В текстовом тексте говорится, что вы пытаетесь запросить колонку, которая не существует. В таблице 'mob_reg' * есть столбец с именем' name'? – DCoder
Следующая проблема после этого будет заключаться в том, что вы не указываете имя пользователя, когда вы помещаете его в запрос. Используйте параметр привязки вместо того, чтобы вставлять его напрямую. – DCoder
имя столбца существует, это не проблема, и да, можете ли вы показать мне, как указывать имя пользователя? –