php - 如何在 Laravel 中执行 whereIN 查询?

标签 php mysql laravel

我正在尝试在 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/

相关文章:

php - 为什么 Symfony2 建议避免使用 'legacy' php session ?

php - 计数while循环,在特定的循环时间内做其他事情并继续while循环

mysql - 将 PAF 文件导入 MySQL

php - 框架外的路由组件

mysql - 如何使用 Laravel Eloquent ORM 或查询生成器从 whereIn 子句中进行选择?

php - 用于比较的奇怪 MySQL 行为

php - 将文件从一台服务器保存到另一台服务器

php - laravel 中的 REST API 与 facebook 登录

mysql - Azure MySQL 根权限

mysql - SQLSTATE [HY000] [1045] 拒绝用户 'root' @'172.19.0.4' 与 Docker 的访问