我正在尝试在Laravel中执行whereIN
查询。我想要匹配的值是数据库表中的值,如:“a,b,c,d”
我想选择上面包含此字符串名称的所有用户。 所以我接受字符串并将其爆炸以创建一个数组,然后我将此数组添加到Laravel命令。问题是它只返回一个仅匹配字母“a”的用户,并且它会停止。
控制器代码:
public function returnEorti(){
$month = Input::get('month');
$day = Input::get('day');
$eorti = DB::select("select text from days where day='$day' and month='$month'");
$eortiFinal = explode(",", $eorti[0]->text);
$pelatis = Pelatis::whereIn('Onoma', $eortiFinal)->get();
return json_encode($pelatis);
}
ajax:
$.ajax({
type:"GET",
url:"getEorti",
data:{"day":d[2],"month":d[1]},
success:function(data){
var b = jQuery.parseJSON(data)
for(var i=0;i<Object.keys(b).length;i++){
$( "#test" ).append( b[i].Onoma+'</br>' );
}
console.log(data);
}
});
我的路线:
Route::get('getEorti','EortologioController@returnEorti');
'Pelates'表: P_ID Onoma Epitheto Onoma_Miteras Onoma_Patera Hmerominia_Gennisis Tilefono_Oikias Kinito_Tilefono Diefthinsi DIMOS Periferia Periferiaki_Enotita Epaggelma 电子邮件
答案 0 :(得分:0)
DB
查询
$eorti = DB::select("select text from days where day='$day' and month='$month'");
应该更正为
eorti = DB::table('days')->whereDay($day)->whereMonth($month)->get();