3 Stimmen

CakePHP lädt die mit dem Modell verbundenen Eigenschaften nicht auf dem Produktionsserver

Das ist eine seltsame Sache.

Ich habe einen lokalen Server, auf dem ich Anwendungen entwickle. Eine von mir entwickelte Produktbewertungs-App funktioniert darauf einwandfrei und nutzt die assoziative Modellierung von Cake ($hasMany, $belongsTo, et. al.).

Nachdem ich diese Anwendung auf einen Produktionsserver hochgeladen habe, schlägt sie fehl. Ich erhalte eine Fehlermeldung:

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

Ich habe debug() 'd $this und es zeigt sich ganz deutlich, dass der lokale Server die zugehörigen Modelle lädt, der Produktionsserver jedoch nicht. Die Datenbanken sind Spiegel Duplikate (buchstäblich, der Produktionsserver wurde von der Dev-DB importiert), und ich kann manuell Modelle laden, die mir sagt, es ist die Verbindung zu der DB einfach gut.

Was um alles in der Welt ist hier los?

UPDATE

Die Sql-Abfrage vom Produktionsserver lautet wie folgt:

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

Die Sql-Abfrage vom Dev-Server lautet wie folgt:

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

UPDATE 2

Hier ist ein Teil des Codes, auf den die Fehler hinweisen:

$title = $this->Review->Product->find( 'first', array( 'fields' => array( 'Product.name' ), 'conditions' => array( 'Product.id' => $filter ) ) );

UPDATE 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' => ''
    )       
);
}
?>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X