Я понимаю, что об этом спрашивали 100000 раз, но я почти прочитал все 100000 ответов, и ни один из них, похоже, не соответствует тому, что мне нужно. Я перепробовал все возможные комбинации (очевидно, нет) и боюсь, что я проиграю в чем-то настолько относительно простом. Это мой второй проект 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'....
ProfileController .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
опущено со всеми другими двухуровневыми ассоциациями, но отлично работает в любое другое время (с тем же уровнем или 1-м уровнем).
Может ли кто-нибудь предложить исправление этой простой ошибки?