2016-04-01 6 views
0

Laravel'de yeni başlayan biriyim. Bir SQL sorgu deyiminde PHP dizi değerini kullanmayla ilgili bir sorunla karşılaştım. $waypoints dizilim var ve şehirlerin adlarını içerir. Ve var_dump($waypoints) aşağıdaki gibi görünüyor.Laravel 5.2'de bir SQL sorgusunun içinde bir PHP dizisi değeri ayarlamıyor

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

Ve ben bir SQL sorgusu yürüterek bir şehrin tekabül id bulmaya çalışıyorum. Kod aşağıdaki gibidir.

$cityname = $waypoints[2]; 

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

Bu sorgu yürütülmemiştir.

var_dump($city) buna benzer. i manuel değişken $cityname bir dize değeri ayarlarsanız

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

Ama (örneğin $cityname = "London"; gibi), bu idam.

Sorunu çözemiyorum. Yardıma ihtiyaç var.

+1

deneyin bu .. $ şehir = Şehir :: nerede ('name' , 'LIKE', $ cityname. "%") -> toSql(); –

cevap

1

yapmanız gereken bu

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

veya

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

yerine

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