これが 100,000 回も聞かれていることは理解していますが、100,000 件すべての返信をほとんど読みましたが、どれも私の求めているものと一致していないようです。私は考えられるすべての組み合わせを試しましたが(明らかにそうではありません)、比較的単純なものに打ち負かされているのではないかと心配しています。これは私の 2 番目の Cake プロジェクトなので、決して専門家ではありません。
プロファイル ->所属-> 店舗、店舗 ->所属-> 地域、地域 -> HasMany -> 店舗
プロファイル.php
class Profile extends AppModel {
public $belongsTo = array(
'Store' => array(
'className' => 'Store',
'foreignKey' => 'store_id'....
.phpを保存
class Store extends AppModel {
public $belongsTo = array(
'Region' => array(
'className' => 'Region',
'foreignKey' => 'region_id'....
リージョン.php
class Region extends AppModel {
public $hasMany = array(
'Store' => array(
'className' => 'Store',
'foreignKey' => 'region_id'....
プロファイルコントローラー.php
$this->Paginator->settings = array(
'conditions' => array('Profile.job_title_id' => '1'),
'contain' => array(
'Store'=> array(
'Region'
)
)
);
$UserArds = $this->Paginator->paginate('Profile');
$this->set(compact('UserArds'));
.phpを表示
<th><?php echo $this->Paginator->sort('Region.name', 'Region'); ?></th>
私がやろうとしているのは、ページネーターを使用するときに地域名でソートできるようにすることだけです。どの組み合わせを使用しても、Region.name を並べ替えることができないようです。このorder By
句は、他のすべての深さ 2 レベルの関連付けでは省略されますが、それ以外の場合 (同じレベルまたは第 1 レベル) では正常に機能します。
誰でもこの単純な間違いの修正を提案できますか?