CakePHP,表$ belongsTo两个表:错误错误:无法重新声明table :: $ belongsTo

时间:2014-06-15 12:16:01

标签: php mysql sql cakephp

我有这样的问题 - 有3个表,例如Clients,Hats,Tshirts。每个客户都有一个Hat和一个Tshirt关系。我这样做了:

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

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

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

我无法显示客户端视图的indext.ctp,错误是:         `        致命错误

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

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

1 个答案:

答案 0 :(得分:1)

要声明belongsTo关系,您需要为每个belongsTo关系创建一个对象数组而不是单个var。
在您的客户端模型中,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