Laravel在QueryBuilder中获取结果toSql

时间:2014-04-07 06:28:04

标签: php laravel

我使用了select laravel QB方法,我希望得到MYSql命令。

Laravel QB:

public function scopeiOS( $query ){
    $result = $query->select( DB::raw('count(`platform`) as iOS' ) )     ->where( 'platform' , '=', 'iOS' )      ->pluck('iOS');
}

toSql()不是该功能的成员。

1 个答案:

答案 0 :(得分:2)

我不了解toSql()但是如果您想要创建查询,那么您可能需要查看为该请求执行的查询的日志。

$queries = DB::getQueryLog();
dd($queries);

或者执行最后一次查询:

$queries = DB::getQueryLog();
$last_query = end($queries);

或者(警告未经测试的代码)

public function scopeiOS( Illuminate\Database\Query\Builder $query ){
    $result = $query->select( DB::raw('count(`platform`) as iOS' ) )
                    ->where( 'platform' , '=', 'iOS' )
                    ->pluck('iOS');
}

检查this以获取有关toSql()

的更多信息
/**
 * Get the SQL representation of the query.
 *
 * @return string
 */
public function toSql()
{
    return $this->grammar->compileSelect($this);
}