テーブル Cs_grpusu は、私のオフィスのエリアを指定します。テーブル Users には Cs_grpusu への外部キーがあります
Cs_grpusu モデル (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 テーブルの内容:
そして、私のユーザーモデルでは、これを設定しました:
var $belongsTo = array(
'Cs_grpusu' => array(
'className' => 'cs_grpusu',
'foreignKey' => 'area'
)
);
次に、これらの領域を User add.ctp ビュー フォームに配置します。
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]));
では、選択ボックスに「レセプション、予算...」というオプションのみを表示するには、これらの奇妙な数字がなく、未定義のインデックスエラーが発生しないようにするにはどうすればよいですか?
ありがとう!!