CakePHP烘焙项目,转移到插件,关系不起作用?

时间:2014-01-10 04:39:50

标签: cakephp model

我在CakePHP中烘焙了一个项目,该项目运行良好。然后我将其移动到名为“MobileFort”的插件中。除了模型关系之外,我能够从测试应用程序中获得所有功能。我添加了“MobileFort”。在所有的班级名称之前,但仍然没有快乐。

示例索引(来自“用户”控制器......只是默认烘焙):

    public function index() {
    $this->User->recursive = 0;
    $this->set('users', $this->Paginator->paginate());
}

相关模型关系:

    public $belongsTo = array(
    'SystemNotice' => array(
        'className' => 'MobileFort.SystemNotice',
        'foreignKey' => 'system_notice_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    ),
    'TicketMessage' => array(
        'className' => 'MobileFort.TicketMessage',
        'foreignKey' => 'ticket_message_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    )
);

public $hasMany = array(
    'SystemNotice' => array(
        'className' => 'MobileFort.SystemNotice',
        'foreignKey' => 'user_id',
        'dependent' => false,
        'conditions' => '',
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'exclusive' => '',
        'finderQuery' => '',
        'counterQuery' => ''
    ),
    'TicketMessageSent' => array(
        'className' => 'MobileFort.TicketMessage',
        'foreignKey' => 'to_user_id',
        'dependent' => false,
        'conditions' => '',
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'exclusive' => '',
        'finderQuery' => '',
        'counterQuery' => ''
    ),
    'TicketMessageReceived' => array(
        'className' => 'MobileFort.TicketMessage',
        'foreignKey' => 'from_user_id',
        'dependent' => false,
        'conditions' => '',
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'exclusive' => '',
        'finderQuery' => '',
        'counterQuery' => ''
    ),
);

Aand视图的相关部分:

<?php foreach ($users as $user): ?>
<tr>
    <td><?php echo h($user['User']['id']); ?>&nbsp;</td>
    <td><?php echo h($user['User']['username']); ?>&nbsp;</td>
    <td>
        <?php echo $this->Html->link($user['SystemNotice']['title'], array('controller' => 'system_notices', 'action' => 'view', $user['SystemNotice']['id'])); ?>
    </td>
    <td>
        <?php echo $this->Html->link($user['TicketMessage']['subject'], array('controller' => 'ticket_messages', 'action' => 'view', $user['TicketMessage']['id'])); ?>
    </td>
</tr>

我到底在这里错过了什么?

1 个答案:

答案 0 :(得分:0)

事实证明,经过大量的烦躁之后,问题是我的控制器使用了一个不符合惯例的名称。我正在使用预期的uses属性:

public $uses = array('User');

需要将MobileFort.添加到User的前面。

我没有意识到这是因为,由于某种原因,它正在工作(页面会加载,我可以获取所有其他用户数据等...它只是不会加载相关的模型)。

我认为情况非常独特,可能很少出现。