0

次のエラーが表示されます:
Notice (8): Undefined property: ProductsController::$Category **

致命的なエラー: オブジェクト以外でのメンバー関数 find() の呼び出し

**
\shop\app\controllers\products_controller.php の 7 行目
モデル:

class Category extends AppModel {
var $name = 'Category';
var $hasMany = array('Product');
}  

コントローラ:

class CategoriesController extends AppController{
var $name = 'Categories';}
class ProductsController extends AppController{
var $name ='Products';

function lists(){
$categories = $this->Category->find( 'all',array('order'=>'Category.id ASC'));
} 

私は2つのコントローラクラスを持っています 1. CategoriesController 2. ProductsController. カテゴリコントローラーでリストメソッドを使用するとうまくいきますが、製品コントローラーではエラーが発生しますか?

4

1 に答える 1

3

カテゴリ (または関連する他の) モデルからメソッドを呼び出したい場合は、「親」(この場合は Prodcut) モデルを介して行う必要があります。

$categories = $this->Product->Category->find('all', array('order' => 'Category.id ASC'));

動作するはずです。

http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#relationship-typesを参照

于 2012-05-12T12:50:22.177 に答える