Это странно.
У меня есть локальный сервер, на котором я разрабатываю приложения.Приложение для обзора продуктов, которое я разработал, работает на нем безупречно и использует ассоциативное моделирование Cake ($ hasMany, $ ownTo и др.).
После отправки этого приложения на производственный сервер происходит сбой.Дает мне сообщение об ошибке:
Notice (8): Undefined property: AppModel::$Product [APP/controllers/reviews_controller.php, line 46]
ReviewsController::home() - APP/controllers/reviews_controller.php, line 46
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 204
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 171
[main] - APP/webroot/index.php, line 83
Имеет debug()
'd $this
и показывает, как день, что, пока локальный сервер загружает связанные модели, рабочий серверне.Базы данных являются зеркальными дубликатами (буквально, рабочий сервер был импортирован из dev db), и я могу вручную загружать модели, что говорит о том, что он прекрасно подключается к БД.
Что происходит на Земле?
ОБНОВЛЕНИЕ
Запрос sql с рабочего сервера выглядит так:
SELECT `Review`.`id`, `Review`.`title`, `Review`.`product_id`, `Review`.`score`, `Review`.`submitted`, `Review`.`reviewed`, `Review`.`right`, `Review`.`wrong`, `Review`.`user_id`, `Review`.`goals`
FROM `reviews`
AS `Review`
WHERE 1 = 1
ORDER BY `Review`.`submitted` desc LIMIT 10
Запрос sql с сервера dev выглядит следующим образом:
SELECT `Review`.`id`, `Review`.`title`, `Review`.`product_id`, `Review`.`score`, `Review`.`submitted`, `Review`.`reviewed`, `Review`.`right`, `Review`.`wrong`, `Review`.`user_id`, `Review`.`goals`, `User`.`id`, `User`.`username`, `Product`.`id`, `Product`.`name`
FROM `reviews`
AS `Review`
LEFT JOIN `users` AS `User` ON (`Review`.`user_id` = `User`.`id`)
LEFT JOIN `products` AS `Product` ON (`Review`.`product_id` = `Product`.`id`)
WHERE 1 = 1
ORDER BY `Review`.`submitted` desc LIMIT 10
ОБНОВЛЕНИЕ 2
Вот некоторые коды, на которые указывают ошибки:
$title = $this->Review->Product->find( 'first', array( 'fields' => array( 'Product.name' ), 'conditions' => array( 'Product.id' => $filter ) ) );
ОБНОВЛЕНИЕ 3
<?php
class Review extends AppModel {
var $name = 'Review';
var $displayField = 'title';
//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' => ''
),
'Product' => array(
'className' => 'Product',
'foreignKey' => 'product_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
}
?>