Cakephp の命名規則に問題がありますが、ここで間違いを見つけることができません。
2 つのモデルがあり、それらが結合されています (後でコードを含めます)。インデックス ファイルには、2 つの異なるテーブルからのデータを表示する際に問題があります。エラーが発生します。
データベース エラー エラー: SQLSTATE[42S22]: 列が見つかりません: 1054 不明な列 'Com.info_id' が 'フィールド リスト' にあります
モデル
(Info.php)
<?php
class Info extends AppModel
{
public $hasMany = array('Com');
public $validate = array(
'title'=>array(
'rule'=>'notEmpty'
),
'body'=>array(
'rule'=>'notEmpty'
)
);
}
?>
(Com.php)
<?php
class Com extends AppModel
{
public $belongsTo = array('Info');
public $validate = array(
'mail'=>array(
'requierd'=>array(
'rule'=>array('notEmpty'),
'message'=>'Write your email'
)
),
'body'=>array(
'required'=>array(
'rule'=>array('notEmpty'),
'messages'=>'Write smth'
)
)
);
}
?>
コントローラー (InfosController.php)
<?php
class InfosController extends AppController
{
public $helpers = array('Html','Form','Session');
public $components = array('Session');
public function index()
{
$this->Info->recursive = 1;
$this->set('inform', $this->Info->find('all'));
}}
(ComsController.php) (これからインデックスを削除しようとしてもうまくいきません)
<?php
class ComsController extends AppController
{
public $helpers = array('Html','Form','Session');
public $components = array('Session');
public function index()
{
$this->set('com', $this->Infos_com->find('all'));
}}
少なくとも (View/Infos/index.ctp) (重要ではないため、インデックスが空であってもエラーが発生します)、ボディ部分
<?php if (isset($inform)) {
foreach($inform as $info) {
echo $info['Info']['title']; echo '<br>';
echo $info['Info']['body'];
foreach($info['Com'] as $comment) {
echo $comment['Com']['body'];
}
}
} ?>
私のデータベースのテーブルは Infos と Coms です。以前は Info テーブルでのみ作業していましたが、問題はありません。 $public $hasMany = array('Com') を使用すると問題が発生します
ヒントやアドバイスに感謝します。よろしくお願いします !!