Может быть, это потому, что я смертельно устал, но я совершенно что-то здесь упускаю. Я унаследовал приложение Cake 1.3 от друга, который правильно настроил свои таблицы, но мне не хватает некоторых данных. Когда я печатаю массив данных, я ожидаю, что это:
Array
(
[Listing] => Array
(
[id] => 74
[listing_name] => El Toro
[category_id] => 3
[location_id] => 2
[long_desc] =>
),
[Category] => Array
(
[id] => 3
[category_name] => Restaurant
),
)
(Список принадлежит категории). Функция контроллера определяется следующим образом:
function view_detail(){
$this->set('um','true');
$l=$this->Listing->find('first', array('conditions'=>array('id'=>$this->params['cid'])));
$this->set('lst', $l);
}
Вместо этого я получаю это:
Array
(
[Listing] => Array
(
[id] => 74
[listing_name] => El Toro
[category_id] => 3
[location_id] => 2
[long_desc] =>
)
)
Просматривая таблицы базы данных, которые он настроил, все соглашения торта были соблюдены: у списков есть category_id, а у категорий — listing_id. Я полагаю, что некоторое время назад мне сказали, что если у вас есть простые модели/ассоциации для печенья, вам даже не нужно настраивать страницы моделей, поскольку торт автоматически узнает ассоциации. Но я все равно это сделал, и это не имело никакого значения. Я пытался установить рекурсивность до 2, и это не имело никакого значения. Ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо, даже я не очень хорошо разбираюсь в cakephp. Кстати, я хочу указать название категории (ресторан) в списке.
ОБНОВЛЕНИЕ
Вот мои 2 модели:
class Category extends AppModel{
var $hasMany = array( 'Listing' );
}
class Listing extends AppModel{
var $name='Listing';
var $belongsTo = array( 'Location'=>array('foreignKey'=>'location_id'), 'Category'=>array('foreignKey'=>'category_id') );
}
public $belongsTo = array('Category');
в модели Listing иpublic $hasMany = array('Listing');
в моделиCategory
? - person tigrang   schedule 23.09.2012debug(get_class($this->Listing))
? Это модель приложения или листинг? Рекурсивный должен работать, но попытка Контейнерного поведения не повредит. - person tigrang   schedule 23.09.2012