当前位置: 首页 > 知识库问答 >
问题:

Laravel查询数据库“和”或“Where或Where

尤夕
2023-03-14

在Laravel4中,我已经建立了一个搜索表单。任何人可以提交

if(Input::get('from') && Input::get('to')){
            $records = Applications::where('created_at', '>=', Input::get('from'))
                ->where('created_at', '<', date('Y-m-d', strtotime(Input::get('to'). ' + 1 days')))
                ->lists('id');
    }elseif(Input::get('email') || Input::get('ref')){
        $records = Applications::where('Application_number', '=', Input::get('ref'))
            ->where('email', '=', Input::get('email'), 'OR')
            ->lists('id');
    }else{
        $records = Applications::all()->lists('id');
    }
$result = User::where('created_at', 'LIKE', '%' . $search . '%')
    ->where('updated_at', 'LIKE', '%' . $search . '%', 'OR')
    ->where('user_first_name', 'LIKE', '%' . $search . '%', 'AND')
    ->where('user_any_field', 'LIKE', '%' . $search . '%')->get();
    Model::where(function ($query) {
    $query->where('a', '=', 1)
          ->orWhere('b', '=', 1);
})->where(function ($query) {
    $query->where('c', '=', 1)
          ->orWhere('d', '=', 1);
});

共有1个答案

童冠玉
2023-03-14

你可以试试这个:

$input = Input::all();

Model::where(function($query) use ($input) {
     if (isset($input['something'])) {
         $query->where('some_field_1', '=', $input['something']);
     }

     if (isset($input['something_else'])) {
         $query->where('some_field_2', '=', $input['something_else']);
     }
})->get();

我觉得这是最干净的方式。当然,您应该把if语句放在您需要的地方。

 类似资料:
  • SqliteOpenHelper只是一个工具,是SQL世界和OOP之间的一个通道。我们要新建几个类来请求已经保存在数据库中的数据,和保存新的数据。被定义的类会使用ForecastDbHelper和DataMapper来转换数据库中的数据到domain models。我仍旧使用默认值的方式来实现简单的依赖注入: class ForecastDb( val forecastDbHelper:

  • 前面一个章节中我们讲了关于SQLiteOpenHelper的创建,但是我们需要在必要的时候有方法去保存我们的数据到数据库,或者从我们的数据库中查询数据。另外一个叫ForecastDb类就会做这件事。

  • 但是首先,我们要去为数据库创建model类。你还记得我们之前所见的map委托的方式?我们要把这些属性直接映射到数据库中,反过来也一样。 我们先来看下CityForecast类: class CityForecast(val map: MutableMap<String, Any?>, val dailyForecast: List<DayFor

  • CORS策略阻止从来源'http://laravelvue2.test'访问位于'http://localhost:8000/items'的XMLHttpRequest:请求的资源上没有'Access-Control-Allow-Origin'标头。

  • 我正在使用Cassandra 1.1.2我正在尝试将RDBMS应用程序转换为Cassandra。在我的RDBMS应用程序中,我有以下名为table1的表: Col1:字符串(主键) 此表对2亿记录进行计数。主要使用的查询如下: 在Cassandra中,我使用以下语句创建表: 我将主键更改为一个额外的列(我计算应用程序中的键)。导入一些记录后,我尝试执行以下cql: 这个结果是: 查询从col3=6

  • 看看有没有人能帮上忙。 我想使用Spring数据mongodb的存储库,我想使用查询注释来过滤按值A=10或A=20查找的数据 很明显,“试着做一个AND,我需要一个OR。 有什么想法吗?