1.3 CakePHPアプリを2.2.5にアップグレードする過程で、で予期しない結果が発生しfind('list')
ます。
id
データベースに格納されている増分値の1、2、3、4、5ではなく、値に1を取得する理由を誰かが知っていますか?
コントローラコード(以下に表示)を実行すると、次のようになります。
Array
(
[1] => 5
)
私が取得したいのは:
Array
(
[1] => 1 (urgent)
[2] => 2
[3] => 3
[4] => 4
[5] => 5
)
そして、に変更するとfind('all')
、次のようになります。*値は常に1であることに注意してください[id]
*
Array
(
[0] => Array
(
[Priority] => Array
(
[id] => 1
[description] => 1 (urgent)
)
)
[1] => Array
(
[Priority] => Array
(
[id] => 1
[description] => 2
)
)
[2] => Array
(
[Priority] => Array
(
[id] => 1
[description] => 3
)
)
[3] => Array
(
[Priority] => Array
(
[id] => 1
[description] => 4
)
)
[4] => Array
(
[Priority] => Array
(
[id] => 1
[description] => 5
)
)
)。
すでに試しました
- PriorityがCakePHPで予約語だった場合に備えて、Priorityの名前をPriorityLevelに変更します。
以下の関連コードを参照してください。
コントローラコード
$priorities = $this->Ticket->Priority->find('list', array('fields' => array('Priority.id', 'Priority.description'),'order' => 'Priority.description'));
モデルコード
class Ticket extends AppModel {
public $name = 'Ticket';
public $belongsTo = array('Affect', 'Priority', 'User', 'Status');
public $validate = array(
'priority_id' => array(
'rule' => 'notEmpty',
'message' => 'Please assign a priority to this ticket'
)
);
}
class Priority extends AppModel {
public $name = 'Priority';
}
コードを表示
echo $this->Form->input('Ticket.priority_id',
array('type' => 'select',
'empty' => true,
'tabindex' => 2));