本文实例分析了Yii框架关联查询with用法。分享给大家供大家参考。具体方法如下:

Yii框架关联查询与mysql中的关联查询会有什么区别呢"codetitle">复制代码 代码如下:$blogs = $blog_model->with('b_user')->find();
model 这里的model指的是blog_model
复制代码 代码如下:'b_user'=>array(self::BELONGS_TO, 'user', 'author')
适用范围,查找博客的时候需要把博客的作者也查出来。
b_user中第二个参数:子表的表名,第三个参数,主表中用于存子表主键的字段(blog表中用于存user表主键的字段)。
 
HAS_ONE:
controller
复制代码 代码如下:$user_blog = $user_model->with('u_blog')->find();
model 这里的的model指的是user_model
复制代码 代码如下:'u_blog'=>array(self::HAS_ONE, 'blog', 'author')
测试一下,不仅仅查出了作者的信息,而且还查出了一篇该作者的博客。
u_blog中的第二个参数:子表表名,第三个参数,子表中用于存主表主键的字段(blog表中用于存user表主键的字段)。
 
HAS_MANY:
controller
复制代码 代码如下:$user_blogs = $user_model->with('u_blogs')->find();
model 这里的的model指的是user_model
复制代码 代码如下:'u_blogs'=>array(self::HAS_MANY, 'blog', 'author')
测试一下,不仅仅查出了作者的信息,也不仅仅查出了一篇该作者的博客,而且还查出了该作者其它的博客。
u_blogs中的第二个参数:子表表名,第三个参数,子表中用于存主表主键的字段(blog表中用于存user表主键的字段)。
 
MANY_TO_MANY:
这个东西啊,我还没用过,貌似基本上也不会用到,待我测一下,再来续上。。。
 
至此,Yii with的最最基本用法说的差不多了,但是你就没有啥疑问吗"codetitle">复制代码 代码如下:'u_blogs'=>array(self::HAS_MANY, 'blog', 'author','select'=>'gid,title,content')
这样试试"codetitle">复制代码 代码如下:'u_blogs'=>array(self::HAS_MANY, 'blog', 'author','select'=>'gid,title,content','condition'=>'u_blogs.gid=2')
搞定!
 
相信看过这些非常小白的讲解后应该恍然大悟了吧。此所谓万事开头难啊,剩下的东西相信你一看就懂了~~~
 
以下内容来自Yii手册:
 
延迟加载时有一定的关系,下列选项可用:
'group': string, GROUP BY子句。 默认值为空。 注意,列引用需要加入'relationName'前缀 。(例如: relationName.age)。此选项仅适用于HAS_MANY 和 MANY_MANY 关系。
'having': string, HAVING子句。 默认值为空。 注意,列引用需要加入'relationName'前缀 。(例如: relationName.age)。此选项仅适用于HAS_MANY 和 MANY_MANY 关系。
'limit': 数据行的limit选择。 这个选项不能应用到BELONGS_TO。
'offset': 数据行的偏移量。 这个选项不能应用到BELONGS_TO。
'through': 获取相关的数据时将用作桥的模型的关系的名称。可以设置仅为 HAS_ONE 和 HAS_MANY。此选项自版本 1.1.7 可用。

以下是一个例子,为 'Post' 活动记录类相关对象的一个示例:
复制代码 代码如下:return array(
    'author'=>array(self::BELONGS_TO, 'User', 'author_id'),
    'comments'=>array(self::HAS_MANY, 'Comment', 'post_id', 'with'=>'author', 'order'=>'create_time DESC'),
    'tags'=>array(self::MANY_MANY, 'Tag', 'post_tag(post_id, tag_id)', 'order'=>'name'),
);

希望本文所述对大家的yii框架程序设计有所帮助。

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?