2017-05-05 10 views
0

Laravel 5.0을 사용하고 있습니다.Laravel 5.0 어디 에서처럼 Raw concat

return User::whereRaw("CONCAT(first_name, ' ', last_name) LIKE '%?%'", ['test'])->get(); 

그것은 []를 반환

나는이 있습니다.

return User::whereRaw("CONCAT(first_name, ' ', last_name) LIKE '%test%'")->get(); 

가 3 사용자와 배열을 반환

나는로 변경합니다.

나는 쿼리하기 전에이 추가 :

\DB::listen(function($sql, $bindings) { 
    var_dump($sql); 
    var_dump($bindings); 
}); 

내가 얻을 :

string(73) "select * from `users` where CONCAT(first_name, ' ', last_name) LIKE '%?%'" 
array(1) { 
    [0]=> 
    string(4) "test" 
} 

내가 뭘 잘못 알아낼 수 없습니다.

+0

얼마나 많은 사용자가 반환해야합니까? –

+0

3 명의 사용자가 있습니다. 그리고 내가 방금 얻은 것 같아. – ajon

+0

잘 했어. –

답변

0

? 자리 표시 자에 따옴표를 사용하면 안되며 더 긴 문자열의 일부가 아니어야합니다. 준비된 명령문은 값을 따옴표 및/또는 백틱으로 둘러 쌉니다.

이 작동 다음 ? 독립 값입니다

return User::whereRaw("CONCAT(first_name, ' ', last_name) LIKE ?", ['%test%'])->get(); 

공지 사항. 따옴표는 쿼리가 실행될 때 추가됩니다.