Я создал таблицу hasManyThrough, как показано ниже:
id user_id friend_id
У меня также есть таблица пользователей, как показано ниже: id username password
Я хочу, чтобы и user_idfriend_id принадлежит к столбцу id пользователя.Итак, я написал ниже две модели:
Модель друга
class Friend extends AppModel {
var $name = 'Friend';
//The Associations below have been created with all possible keys, those that are not needed can be removed
var $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Friend' => array(
'className' => 'User',
'foreignKey' => 'friend_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
}
Модель пользователя
class User extends AppModel {
var $name = 'User';
var $displayField = 'username';
var $hasMany = array(
'User' => array(
'className' => 'Friend',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
),
'Friend' => array(
'className' => 'Friend',
'foreignKey' => 'friend_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
}
Я не уверен почему, но когда я пытаюсь просмотреть это черезконтроллер в лесах, он приходит с ошибкой 500 сервера ??Что-то не так с конфигурацией модели, которая создает неправильный SQL?
ОК, похоже, ошибка произошла из-за Zend Optimizer, согласно некоторым форумам.Это создает ошибку сегментации при выпекании!
Я не могу отключить это на стороннем размещенном сервере, поэтому мне, возможно, придется перейти на локальный сервер и протестировать, чтобы я мог видеть ошибки Cake.
Хорошо, ниже приведена ошибка (она очень длинная, поэтому я не собираюсь помещать все, но ниже даются некоторые идеи):
Fatal error: Maximum function nesting level of '100' reached, aborting! in /usr/share/php/cake/libs/debugger.php on line 248 Call Stack: 0.0011 352048 1. {main}()