Open GoogleCodeExporter opened 9 years ago
为 ActiveRecord 的关联提供一个额外的操作机制用于关联数据的检索、删除�� �更新 和添加等操作。 查找符合条件的关联对象: {{{ // post has_many comment $post = Post::find('post_id = ?', $post_id)->query(); $post->comments->where('level_ix > ?', $level_ix)->getAll(); // 此时 $post->comments 将包含 level_ix > $level_ix,并且属于 $post 的 Comment 对象 }}} 删除符合条件的关联对象: {{{ $post->comments->where('level_ix > ?', $level_ix)->removeAll(); }}} 更新符合条件的关联对象: {{{ // 将 level_ix > $level_ix 并且属于 $post 的 Comment 对象的 level_ix 更新为 $new_level_ix $post->comments->where('level_ix > ?', $level_ix)->update(array('level_ix' => $new_level_ix)); }}} 在关联中添加对象,主要用于 many_to_many 关联,因为要维护中间表保存的关联关 系,必须每次更新时都提供全部的关联对象。这样毫无疑问�� �率较低。 {{{ // Post many_to_many Tag // 将 Post 和一个 Tag 关联起来 $post->tags->band(Tag::find('name = ?', 'PHP')->query()); // 解除指定 Tag 与 Post 的关联 $post->tags->unbind(Tag::find('name = ?', 'PHP')->query()); // 解除符合条件的 Tag 与 Post 的关联 $post->tags->where('name = ? OR name =?', 'PHP', 'Java')->unbind(); }}}
Original issue reported on code.google.com by dualf...@gmail.com on 3 May 2008 at 8:03
dualf...@gmail.com
Original issue reported on code.google.com by
dualf...@gmail.com
on 3 May 2008 at 8:03