2016-04-01 4 views
0

Ich bin ein Anfänger in Laravel. Ich habe ein Problem bei der Verwendung eines PHP-Array-Werts in einer SQL-Abfrageanweisung festgestellt. Ich habe ein Array $waypoints und es enthält Namen von Städten. Und sieht wie folgt aus.Nicht setzen eines PHP-Array-Wert innerhalb einer SQL-Abfrage in Laravel 5.2

array (size=4) 
0 => string 'Paris' (length=5) 
1 => string 'Moscow' (length=6) 
2 => string 'London' (length=6) 
3 => string 'New York' (length=8) 

Und ich versuche die entsprechenden id eine Stadt zu finden, indem eine SQL-Abfrage ausgeführt wird. Der Code ist wie folgt.

$cityname = $waypoints[2]; 

    $city = City::where('name', 'LIKE', "$cityname%")->firstOrFail(); 

Diese Abfrage wird nicht ausgeführt.

var_dump($city) ist wie folgt.

string 'select * from 'cities' where 'name' LIKE ? ' (length=42) 

Aber wenn ich einen String-Wert auf variable $cityname manuell eingestellt (Als Beispiel $cityname = "London";), ist es noch ausgeführt werden.

Ich kann das Problem nicht herausfinden. Hilfe benötigt.

+1

versuchen, diese .. $ city = Stadt :: wo ('name' , 'LIKE', $ cityname. "%") -> toSql(); –

Antwort

1

Sie sollten dies tun,

$city = City::where('name', 'LIKE', $cityname."%")->firstOrFail(); 

oder

$city = City::where('name', 'LIKE', "{$cityname}%")->firstOrFail(); 

statt

$city = City::where('name', 'LIKE', "$cityname%")->firstOrFail();