随机获取数据:
这里需要使用MySQL的rand函数,在kohana中使用MySQL的函数需要这样: DB::expr('rand()');,这里以一篇文章有多个评论的ORM关系来做例子,代码类似下面这样
$article_model->comments->order_by(DB::expr('rand()'))->limit(4)->find_all(); //随机获取文章的四条评论。
可以看出,在ORM中也可以像写SQL一样,非常的灵活。
组装带有复杂筛选条件的SQL语句:
例如下面的代码
ORM::factory('event')->where_open()
->where('status', '=', Model_Event::JOIN_INVITE_PENDING) // 待确认的状态
->or_where('status', '=', Model_Event::JOIN_IM_OUT) // I'm OUT的状态
->where_close()
->where('end_time', '>', time()); // 过滤过期的event
上面的代码实际上的SQL语句类似下面这样:
SELECT ..... FROM events WHERE (status = 1 OR status = 2) AND end_time > xx;