我正在尝试在 Laravel 中执行 whereIN
查询。我要匹配的值是来自数据库表的值,例如:“a、b、c、d”
我想选择名称包含在上述字符串中的所有用户。 所以我获取字符串并将其分解以创建一个数组,然后我将这个数组添加到 Laravel 命令。问题是它只返回一个仅匹配字母“a”的用户,然后它停止了。
Controller 代码:
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_Patera Hmerominia_Gennisis Tilefono_Oikias Kinito_Tilefono 迪夫辛西 迪莫斯 佩里费里亚 Periferiaki_Enotita Epaggelma 邮箱
最佳答案
DB
查询中存在语法错误
$eorti = DB::select("从 day='$day' 和 month='$month' 的日期中选择文本");
应该更正为
eorti = DB::table('days')->whereDay($day)->whereMonth($month)->get();
关于php - 如何在 Laravel 中执行 whereIN 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25531942/