2017-10-19 64 views
0

的問題是,該別名fechas不採取任何價值...我不能用它爲什麼我不能使用別名?使用原始LARAVEL

> $tabla_c2 = DB::table('horarios') 
>  ->select('id_voluntario',DB::raw("DATE_FORMAT(fecha,'%y-%m-%d')as fechas")) 
>  ->where('id_voluntario','=', $temp) 
>  ->where('fechas','=', $datee) 
>  ->get(); 
+0

這不是一個laravel問題,而是一個SQL限制。重複:https://stackoverflow.com/questions/14413867/mysql-select-as-in-where – Jeffrey

+0

檢查[這也是](https://stackoverflow.com/questions/200200/can-you-use- (''fechas','=',$ datee)'use' - > having(''fechas','='where-clause-in-mysql) – ljubadr

+0

而不是' ,$ datee)' – ljubadr

回答

1

正如在評論中討論,這是一個SQL限制 - 你不能使用where子句中的列的別名。

@ljubadr建議的一種解決方法是使用having來代替 - 儘管我會在@Jeffrey這邊說這會不必要地讓你的查詢變慢。

而不是使用別名,你可以利用whereRaw()

$tabla_c2 = DB::table('horarios') 
->select('id_voluntario',DB::raw("DATE_FORMAT(fecha,'%y-%m-%d')as fechas")) 
->where('id_voluntario','=', $temp) 
->whereRaw("DATE_FORMAT(fecha,'%y-%m-%d') = ?", $datee) 
->get(); 

docsEloquent Aggregates下。

+0

謝謝,這真的幫助我,使用whereRaw() – AtyFlow

相關問題