Cakephp перед фильтромPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Cakephp перед фильтром

Сообщение Anonymous »

В фильтре beforeFilter я устанавливаю переменную для своего представления по умолчанию в зависимости от пользователя, вошедшего в систему... Это прекрасно работает до тех пор, пока не будет вызвано действие выхода из системы.

Код: Выделить всё

class AppController extends Controller {
var $components = array('Acl', 'Auth', 'Session', 'FcStudentMilestone', 'FcSection');
function beforeFilter(){
$this->set('completed_data', $this->_completedData());
}

function _completedData(){
$arr = array();
$x = strval($this->Auth->user('id'));
$compData = $this->FcStudentMilestone->find('all',
array('conditions' => array(
'FcStudentMilestone.user_id' => $x,
'FcStudentMilestone.completed' => '1')));
foreach ($compData as $compDatum) {
$compString = $this->FcSection->find('all',
array('conditions' =>
array('FcSection.id' =>
$compDatum['FcStudentMilestone']['fc_section_id'])));
array_push($arr, $compString[0]['FcSection']['name']);
}
return $arr;
}
Я думаю, что большая часть этого кода не имеет значения, но он все равно есть. Происходит следующее: когда пользователь выходит из системы, он все еще пытается выполнить запрос после выхода из системы, но компонент Auth не имеет идентификатора пользователя.

Я пробовал используя if($this->Auth->user()) или if($this->Auth->user('id')) но он по-прежнему возвращает true и продолжает попытку выполнить запрос.

вот такая ошибка, которую я получаю : Вызов неопределенного метода FcStudentMilestoneComponent::find()

У меня есть файл компонента FcStudentMilestone в папке компонентов, поэтому я действительно думаю, что он может что-то сделать из-за отсутствия идентификатора пользователя, но я мог быть далеко.

Кроме того, я заметил, что ошибка относится к фактическому оператору поиска, но я звоню текущему пользователю идентификатор в предыдущей строке, поэтому почему бы ему не пометить эту строку вместо строки с оператором find?

Подробнее здесь: https://stackoverflow.com/questions/467 ... forefilter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»