在將1.3 CakePHP應用程序升級到2.2.5的過程中,我在find('list')
上獲得了意想不到的結果。CakePHP 2.2.5 find('list')顯示所有id值爲1
有沒有人知道爲什麼我得到1爲id
值而不是數據庫中存儲的增量值,即1,2,3,4,5?
當我運行控制器代碼(如下圖所示),我得到:
Array
(
[1] => 5
)
我想要得到的是:
Array
(
[1] => 1 (urgent)
[2] => 2
[3] => 3
[4] => 4
[5] => 5
)
如果我將其更改爲find('all')
,我得到: * 注[id]
值始終爲1 *
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
)
)
)
已經嘗試過
- 更名優先PriorityLevel的情況下,優先在CakePHP的保留字。
請參閱以下相關代碼:
控制器代碼
$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));
您可以發佈您的優先級模型嗎? –
我沒有Priority.php模型文件,因爲我現在不需要定義任何驗證規則或關聯。但是,我用上面的代碼創建了它(添加到我的問題中)。儘管如此,仍然沒有改變。 – weedave
好的。另一個問題,你檢查你的MySQL表,以確保ID是真的增量? –