CakePHP1.3:选择框的奇怪行为。查找列表不';我不工作,发现所有的工作都很奇怪
表Cs_grpusu指定了我办公室的区域。表用户有一个Cs_grpusu的外键 Cs_grpusu模型(Cs_grpusu.php): 现在,我将把这些区域放在我的User add.ctp视图表单中:CakePHP1.3:选择框的奇怪行为。查找列表不';我不工作,发现所有的工作都很奇怪,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,表Cs_grpusu指定了我办公室的区域。表用户有一个Cs_grpusu的外键 Cs_grpusu模型(Cs_grpusu.php): 现在,我将把这些区域放在我的User add.ctp视图表单中: echo $form->input('area',array('type' => 'select','options'=>$group)); 到现在为止,我觉得还可以。现在问题来了。如果在我的用户控制器中,我以以下方式填写“组”: $this->set('grupos',
echo $form->input('area',array('type' => 'select','options'=>$group));
到现在为止,我觉得还可以。现在问题来了。如果在我的用户控制器中,我以以下方式填写“组”:
$this->set('grupos',$this->User->Cs_grpusu->find('all'));
我的选择框选项变得像这样奇怪(在调试过程中,我得到了下面将描述的错误):
现在,如果我尝试像这样填充组变量:
$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]));
那么,我应该怎么做才能使我的选择框只包含选项“接收,预算…”,没有那些奇怪的数字,并且没有未定义的索引错误
谢谢 将模型类命名为“Cs_grpusu”是您犯的第一个错误,它应该是“CsGrpusu”。所有的类名都用CakePHP封装。阅读有关文件和类命名约定的信息。好的,谢谢!我更改了它,但是现在我得到了错误“error:Database table cs_grpusus for model CsGrpusu找不到”。尽管我在模型中使用了“var$useTable='cs_grpusu';”。我是否应该更改其他内容?这意味着您的模型文件名或类名仍然不符合约定,并且您的类没有被加载。如果您进行
debug(get_class($this->CsGrupusu))代码>在您的控制器中,它将给出输出“AppModel”,而不是预期的模型名“CsGrupusu”。请确保您在用户模型和其他地方的关联中也修复了类名。如果我将模型文件名用作CsGrupusu.php,则useTable将被忽略。但是如果我使用cs_grpusu.php,则使用useTable。因此,我想在我的例子中,cs_grpusu.php应该是正确的选择,不是吗?如果你真的阅读了我上面链接的手册页面,你的问题的答案将是显而易见的。对不起,伙计,我不打算在这里重复手册中已经有的内容。
$this->set('grupos',$this->User->Cs_grpusu->find('all'));
$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]));