Skip to main content

Yaf + Eloquent DB::raw()

在Yaf框架中引入Laravel的Eloquent作为数据库的ORM。在使用中会遇到需要使用raw方法来进行查询的问题。比如使用select语句count所有账单金额。而DB::raw()是Laravel注册的方法,在Yaf框架中并不能使用。
其解决方法有二:

Expression

因为DB::raw()本质上是Illuminate\Database\Query\Expression,所以我们可以自己封装:

<?php  
    require(APP_PATH . "/application/vendor/autoload.php");
    $total_log = Orm\LogModel::select(new Illuminate\Database\Query\Expression('count(rmb) as rmb'),new Illuminate\Database\Query\Expression('count(rmb) as rmb'))->first();
?>

SelectRaw

在Orm中,提供了Select Raw的方法,直接将查询语句写入:

<?php  
    $total_log = Orm\LogModel::selectRaw('count(usd) as usd,count(rmb) as rmb')->first();
?>