2017-10-19 5 views
0

Das Problem ist, dass der Alias ​​fechas hat einen Wert nicht nehmen ... Ich kann es nichtWarum kann ich den Alias ​​nicht verwenden? mit rohen 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

Dies ist kein Laravel-Problem, sondern eine SQL-Einschränkung. Duplikat von: https://stackoverflow.com/questions/14413867/mysql-select-as-in-where – Jeffrey

+0

Überprüfen Sie [auch dies] (https://stackoverflow.com/questions/200200/can-you-use- Ein-Alias-in-der-wo-Klausel-in-Mysql) – ljubadr

+0

Statt '-> where ('fechas', '=', $ datee)' verwenden '-> haben ('' fechas ', =' , $ datee) ' – ljubadr

Antwort

1

verwenden Wie in den Kommentaren diskutiert, ist dies eine SQL Einschränkung - Sie nicht können Verwenden Sie einen Alias ​​für eine Spalte in einer where Klausel.

Eine Abhilfe, wie von @ljubadr vorgeschlagen, ist die Verwendung having statt - obwohl ich Seite mit @ Jeffrey auf diesem und sagen werde, es wird unnötigerweise Ihre Abfrage langsamer machen.

vielmehr den Alias ​​als verwenden, können Sie whereRaw() nutzen:

$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(); 

die docs unter Eloquent Aggregates See.

+0

Danke, das hilft mir wirklich, mit whereRaw() – AtyFlow

Verwandte Themen