php - CakePHP,表$belongsTo 两个表:错误Error: Cannot redeclare table::$belongsTo

标签 php mysql sql cakephp

我有这样的问题 - 有 3 个表,例如 Clients、Hats、Tshirts。每个客户都有一顶帽子和一件 T 恤关系。我是这样做的:

 `
  ClientsModel:
  var $name = 'Client';
  var $belongsTo = 'Hat';
  var $belongsTo = 'Tshirt';

  HatModel:
  var $name = 'Hat';
  var $hasMany = 'Client';

  TshirtModel:
  var $name = 'Tshirt';
  var $hasMany = 'Client';
  `

我无法显示 Clients View 的 indext.ctp,错误是: ` fatal error

   Error: Cannot redeclare Cleint::$belongsTo
   File: /var/www/uat/app/Model/Client.php 
   `

如何在我的数据库中处理这种关系?

最佳答案

要声明一个 belongsTo 关系,您需要为每个 belongsTo 关系创建一个对象数组,而不是一个单独的变量。
在您的客户端模型中,belongsTo 关系需要如下所示:

public $belongsTo = array(
    'Hat' => array(
        'className'     => 'Hat',
        'conditions'    => '',
        'order'         => '',
        'foreignKey'    => 'hat_id' //or your external key
    ),
    'Tshirt' => array(
        'className'     => 'Tshirt',
        'conditions'    => '',
        'order'         => '',
        'foreignKey'    => 'tshirt_id' //or your external key
    )
);

MANUAL

关于php - CakePHP,表$belongsTo 两个表:错误Error: Cannot redeclare table::$belongsTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24229494/

相关文章:

mysql - 使用嵌套 SELECT 保留 SQL WHERE IN() 子句的顺序

php - Laravel 属于ToMany 关系条件

PHP ssh2_shell 执行命令并获得响应

php - 如何使用 php 将 mysql 结果转换为 JSON 对象

php - 如果 MySQL 扩展已被弃用,为什么大多数示例仍在使用它?

sql - 如何强制oracle在不删除/重新创建约束的情况下进行级联删除

php - 我在哪里可以找到 CreateProcess 错误代码的详细信息?

php - 如何使用 Twilio 进行 "pass-through"短信交换?

MySQL事务

mysql - SQL 和外键,引用