Php 如何在Laravel中执行where查询?

Php 如何在Laravel中执行where查询?,php,mysql,laravel,Php,Mysql,Laravel,我正在尝试在Laravel中执行一个查询,其中查询。我要匹配的值是来自数据库表的值,如:“a,b,c,d” 我想选择上面这个字符串中包含名称的所有用户。 因此,我取字符串并分解它以创建一个数组,然后将该数组添加到Laravel命令中。问题是,它只返回一个仅与字母“a”匹配的用户,例如,它会停止 控制器代码: public function returnEorti(){ $month = Input::get('month'); $day = Input::get('day');

我正在尝试在Laravel中执行一个
查询,其中
查询。我要匹配的值是来自数据库表的值,如:“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);      
    }            
 });
“Pelates”表: p_id 小野马 修饰语 小野马螨 小野马 根尼希梅罗米尼亚 蒂列福诺·奥伊基亚斯 基尼托·蒂列福诺 迪夫钦西 迪莫斯 花被 Periferiaki_Enotita 埃帕格尔马
电子邮件查询
DB
中存在语法错误

$eorti=DB::select(“从天中选择文本,其中天为“$day”,月为“$month”)

应更正为

eorti = DB::table('days')->whereDay($day)->whereMonth($month)->get();

$EORTIFILAL
中的实际值是多少?您希望匹配哪些
Pelatis
db行?这不完全是一个Pelatis是客户的表…$EORTIFILAL是一个数组,它有我前面提到的“a,b,c,d”,但由“,”分隔符分解。是的,我意识到Pelatis是一个表,表中有哪些行?有一行叫做“Onoma”,我想将$EORTIFALINAL中的字符串与'Onoma'进行比较,以选择我想要的客户。这是
$eorti[0]->文本
确切地说是“a、b、c、d”?不,不幸的是它没有帮助。。。问题是,查询只返回与字符串中第一个元素匹配的用户,而忽略其余的用户。例如:我有两个名为“Maria”、“Panagiotis”的用户。当查询开始时,它获取日期,并找到具有该天名称的字符串。。。。例如,找到的字符串是'Maria','Panagiotis','Marios'。返回的用户仅为“Maria”您是否尝试仅返回
$pelatis
$pelatis->toJson()
而不是json_encode($pelatis)?如果答案对您有效,请将其作为答案接受,以便将来对其他人有所帮助。
eorti = DB::table('days')->whereDay($day)->whereMonth($month)->get();