我有这样的问题-有三张桌子,例如客户,帽子,T恤。每位客户都有一顶帽子和一件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';
  `

无法显示客户端视图的indext.ctp,错误为:
`
致命错误
   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为两个表:错误错误:无法重新声明表:: $ belongsTo,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24229494/

10-10 06:19