Cakephp 1.3:选择框的奇怪行为。查找列表不起作用,并找到所有奇怪的工作

时间:2012-09-30 20:50:18

标签: cakephp cakephp-1.3

表Cs_grpusu指定了我办公室的区域。表Users拥有Cs_grpusu的外键

Cs_grpusu model(cs_grpusu.php):

<?php
class CsGrpusu extends AppModel {
    var $name = 'Cs_grpusu';
    var $useTable = 'Cs_grpusu';
    var $primaryKey = 'grpusu';
    var $displayField = 'desgrp';
}
?>

Cs_grpusu控制器(cs_grpusus_controller.php):

<?php
class CsGrpususController extends AppController {
    var $uses = 'Cs_gprusu';
}
?>

Cs_grpusu表内容: Table content

在我的用户模型中,我设置了这个:

var $belongsTo = array(        
    'Cs_grpusu' => array(           
        'className'    => 'cs_grpusu',            
        'foreignKey'    => 'area'        
    )    
); 

现在我将把这些区域放在我的用户add.ctp视图表单中:

echo $form->input('area',array('type' => 'select','options'=>$group));

到现在为止,我认为没关系。现在的问题。如果在我的用户控制器中,我以这种方式填写“组”:

$this->set('grupos',$this->User->Cs_grpusu->find('all'));

我的选择框选项变得像这样奇怪(并且,调试,我得到了我将在下面描述的错误):

strange select box

现在,如果我尝试像这样填充组变量:

$this->set('grupos',$this->User->Cs_grpusu->find('list', array('fields'=>array('Cs_grpusu.grpusu','Cs_grpusu.desgrp'))));

我的选择框中没有选项,我也收到以下错误:

Notice (8): Undefined index: cs_grpusu [CORE\cake\libs\model\datasources\dbo\dbo_firebird.php, line 455]

CONTEXT

$results    =   resource
$num_fields =   2
$index  =   1
$j  =   0
$column =   array(
    "GRPUSU",
    "name" => "GRPUSU",
    "GRPUSU",
    "alias" => "GRPUSU",
    "CS_GRPUSU",
    "relation" => "CS_GRPUSU",
    "2",
    "length" => "2",
    "SMALLINT",
    "type" => "SMALLINT"
)

CODE:

$column = ibase_field_info($results, $j);
            if (!empty($column[2])) {
                $this->map[$index++] = array(ucfirst(strtolower($this->modeltmp[strtolower($column[2])])), strtolower($column[1]));

那么,我该怎样做才能让我的选择框只有“接收,预算...”选项,而不是那些奇怪的数字,并且没有未定义的索引错误?

谢谢!

1 个答案:

答案 0 :(得分:2)

命名你的模型类“Cs_grpusu”是你正在做的第一个错误,应该是“CsGrpusu”。所有类名都是CakePHP中的CamelCased。阅读manual关于文件和类命名约定。