如何在Laravel中执行whereIN查询?

时间:2014-08-27 16:04:01

标签: php mysql laravel

我正在尝试在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 电子邮件

1 个答案:

答案 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();