2014-04-07 25 views
0

我正在使用select laravel QB的方法,並且我想獲得MYSql命令的創建。Laravel在QueryBuilder中獲得結果toSql

Laravel QB:

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

toSql()不是功能的構件。

+0

$ result不是查詢生成器對象。發佈整個代碼。 – itachi

+0

@itachi那不是我的問題 –

+0

這實際上是你的問題,因爲'toSql()'是一種僅僅歸因於QueryBuilder對象的方法....不管怎麼說,用這種粗魯的態度,好運也能從別人那裏得到答案。 – itachi

回答

2

我不知道toSql()但如果你想獲得創建的查詢,那麼你可能想看看爲該請求執行的查詢的日誌。

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

或獲取最後執行查詢:

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

或者,也許在toSql()(警告未經測試的代碼)

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

檢查this以獲取更多信息。

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