gpt4 book ai didi

php - CakePHP 约定名称或连接的名称

转载 作者:行者123 更新时间:2023-11-29 13:27:16 25 4
gpt4 key购买 nike

我对 cakephp 名​​称约定有疑问,但我在这里找不到我的错误。

我有两个模型,并且它们已连接(稍后我将包含代码),在索引文件中,我无法显示来自两个不同表的数据。发生错误。

Database Error Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Com.info_id' in 'field list'

型号

(信息.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'
)
)
);
}
?>

Controller (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)(这并不重要,因为,index即使为空,错误仍然会发生),body部分

 <?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。我之前只在信息表上工作,没有任何问题,当我使用 $public $hasMany = array('Com')

时问题就开始了

如果您有任何提示或建议,我将不胜感激。最好的问候!!

最佳答案

您需要阅读 Cake 手册以了解约定。根据您将一个表与另一个表关联的方式,它期望一个表中的 relatedtable_id 形式的外键与另一个表关联:http://book.cakephp.org/2.0/en/getting-started/cakephp-conventions.html .

此外,正如 @thecodeparadox 指出的那样,Infos_com 不是一个有效的模型。该约定适用于表示 InfoCom 之间的连接表的模型,该表保存两个表的外键。我强烈建议您在确保您的数据库设置为约定后使用 bake 实用程序:http://book.cakephp.org/2.0/en/console-and-shells/code-generation-with-bake.html

关于php - CakePHP 约定名称或连接的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19963330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com