Я использую Cakephp 2.x и плагин CakeDC Users. Я пытаюсь сделать переменные * 'editprofile' и 'profile_area_pic' доступными для всех контроллеров, поместив нижеприведенный код в мой AppController's beforefilter()
. Этот код позволяет мне отображать фотографии профиля пользователя и прекрасно работать, пока вы не попытаетесь зарегистрировать пользователя и не предоставите следующие ошибка:Сделать переменные доступными для всех контроллеров в CakePHP 2.x
[PDOException] SQLSTATE[42000]: Syntax error or access violation: 1064
У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «регистром» в строке 1.
У кого-нибудь есть лучшее представление о том, как сделать эти переменные доступными? Заранее спасибо.
///////////// * ВЫПОЛНИТЬ НИЖЕ ПЕРЕМЕННЫЕ ИССЛЕДОВАНИЯ //////////////////////////// ///////////////
$this->loadModel('Profile');
$profileedit = $this->Auth->User('id');
$editprofile = $this->Profile->find('first',array(
'conditions'=>array('Profile.user_id'=>$profileedit),
'fields'=>array('id')));
$this->set(compact('editprofile'));
$this->loadModel('Profile');
$profileuse = $this->Auth->User('id');
$profile_area_pic = $this->Profile->find('first',array(
'conditions'=>array('Profile.user_id'=>$profileuse),
'fields'=>array('photo')));
$this->set(compact('profile_area_pic'));
Пожалуйста, не помечайте его 1.3 и 2.x - выберите только основную версию! Кроме того, почему loadModel() дважды? После его загрузки нет необходимости делать это снова в одном и том же месте. – mark
Спасибо, отметили, и, пожалуйста, проигнорируйте второй loadModel() – Joshua