0

疲れているせいかもしれませんが、ここで何かが完全に欠けています。テーブルを正しくセットアップした友人からケーキ 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] => 
    )
)

彼が設定したデータベース テーブルに目を通すと、cake のすべての規則に従っています。つまり、リストには category_id があり、カテゴリには list_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') );

}
4

1 に答える 1

2

1.xでは、モデルファイルは小文字で下線が引かれている必要がありますapp/model/listing.php。モデルクラスがAppModelとして表示される場合、それは、ケーキがモデルクラスを見つけず、AppModelに基づいてジェネリッククラスを作成していないことを意味します。

于 2012-09-23T06:21:26.640 に答える