2

Cake のコンテナブルを使用したネストされたモデルのページネーションに問題があります...

Category、CompanyCategory、Company の 3 つのモデルがあり、関連付けは次のようになります。

Category hasMany CompanyCategory
CompanyCategory belongsTo Category 
CompanyCategory belongsTo Company
Company hasMany CompanyCategory

以下に示すように、contains を使用してデータを取得します。

$options = [
  'conditions' => ['Category.slug' => $slug],
  'contain' => [
    'CompanyCategory.Company.CompanyAddress'
  ]
];
return $this->find('first', $options);

ネストされたモデルである Company のページ番号を付けたいと思うまで、すべてが適切に機能します。選択したカテゴリと関連する会社 (Company hasMany Categories と Category hasMany Companies) のビューをレンダリングする show メソッドで CategoriesController を使用します。

私はこのようなことを試しました:

$this->Paginator->settings = [
  'limit' => 1,
  'order' => [
    'id' => 'asc'
  ],
  'contain' => array('CompanyCategory.Company')
];
$data = $this->Paginator->paginate('Category.CompanyCategory.Company', array('Category.slug LIKE' => $slug));
$this->set('category', $data);

しかし、これは私にはうまくいきませんでした:(

提案/ヘルプはありますか?

4

2 に答える 2

0

最後に、次を使用して問題を解決します

$this->Paginator->settings = array(
  'limit' => 2,

);

$this->Paginator->paginate('Category.CompanyCategory.Company');

Companies ではなく、CategoriesController のメソッドを使用していることを書き忘れていました。

しかし、別の問題が私をブロックしました...私はTranslateBehaviourを使用していますが、取得したデータには翻訳がありません...

何か案が?私はたくさんグーグルで検索しましたが、満足のいく解決策を見つけることができませんでした。

于 2014-04-15T20:01:22.603 に答える