需要 cakePHP 一对一关联帮助

cakePHP one to one association help needed

到目前为止,这是 cakePHP 中让我简单的大脑感到困惑的部分。

对于这个例子,我有 2 个表。 vw_penkits 和 vw_bushings

vw_penkits 有一个字段 vw_bushing_id

以下是模型:

class VwPenKit extends AppModel {
    var $name = 'VwPenKit';
    var $useTable = 'vw_pen_kits';

    public $hasOne = 'VwBushing';
}

class VwBushing extends AppModel {
    var $name = 'VwBushing';
    var $useTable = 'vw_bushings';

    public $belongsTo = array (
        'PenKit' => array (
            'classname' => 'VwPenKit',
            'foreignKey => 'vw_bushing_id'
            )
        );
}

这里是 VwPenKitsController index()

public function index() {

    $this->loadModel('VwBushing');
    $bushings = $this->VwBushing->find('list');
    $this->set(compact('$bushings'));

    $this->set('penkits', $this->VwPenKit->find('all'));
}

这是 index.ctp

的代码部分
<td><?php echo $penkit['VwPenKit']['kit_name']; ?> </td>
        <td><?php echo $penkit['VwPenKit']['kit_description']; ?> </td>
        <td><?php echo $penkit['VwBushing']['code']?></td>
        <td><?php echo $penkit['VwPenKit']['modified']; ?> </td>

这是渲染时的错误

笔工具包数据库 版本 0.1

零件号 套件名称 描述 衬套修改动作 DK-PKCP8020 螺栓行动笔 (30 Cal)
Notice (8): Undefined index: VwBushing [APP/View/VwPenKits/index.ctp, line 46] 2015-04-07 11:00:00 查看编辑删除 创建者:迈克·马雷克

联系方式:mike@thewoodartiststudio.com.

©2015 The Wood Artist Studio - 版权所有 同样,一旦我弄清楚了这一点,我就需要一个 add.ctp 和 edit.ctp 来创建一个选择列表,以便用户可以将笔套件与其套管相关联。

我的状态还不够 post 图片

提前致谢 麦克

我不是 100% 确定,但这可能与您在查找中的递归值有关。如果设置为 0,则它只会找到第一层。您需要将其设置为 1 或 2,具体取决于您要查找的深度。

我强烈建议使用 ContainableBehaviour。它会让你的生活变得更轻松。

参见here

我确实解决了这个问题,它基本上是一个模型问题。一旦我的关系正确,一切正常。

谢谢 迈克