doutao5499 2009-10-16 06:49
浏览 29

如何在CakePhp中创建一元关联?

Is there a shortcut for creating Unary associations in Cake?

For example, a user is a friend of another user. I'm pretty sure it's going to violate cake's conventions if I try it the hard way and code the associations myself.

Cake has HABTM:

var $hasAndBelongsToMany = array(
    'User' =>
        array(
            'className' => 'User',
            'joinTable' => 'friends',
            'foreignKey' => 'user_id',
            'associationForeignKey' => 'friend_id',
            'unique' => true
        )
);

Will this work? A user model assoc to another user model.

Update: How do I save the data now?

$this->data["Friend"] = $request["Requester"];
$this->data["Admirer"] = $request["Requestee"];                         
$this->Friend->create();
$this->Friend->save($this->data);

$request["Requester"] and $request["Requestee"] both hold objects of type User. The HABTM rel is defined in the User model

var $hasAndBelongsToMany = array(
        'Friend' => array(
            'className' => 'Friend',
            'joinTable' => 'friends',
            'foreignKey' => 'user_id',
            'associationForeignKey' => 'id'
        ),
        'Admirer'=>array(
            'className'=>'Friend',
            'joinTable'=>'friends',
            'foreignKey' => 'friend_id',
            'associationForeignKey' => 'id',            
        )
    );

All that happens is the $data->["Friend"]'s id is stored in the id column of the friends table

  • 写回答

3条回答 默认 最新

  • douluo6626 2009-10-16 06:54
    关注

    In CakePHP there are several variables in your model available to do that, like $hasMany, $belongsTo and $hasAndBelongsToMany. Please read the Cookbook for further explaination.. http://book.cakephp.org/view/78/Associations-Linking-Models-Together .

    In your example, I think you need HABTM.

    评论

报告相同问题?

悬赏问题

  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示