Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 您可以使用查询生成器在运行时在laravel3中使用动态WHERE子句构建查询吗?_Php_Mysql_Laravel_Laravel 3 - Fatal编程技术网

Php 您可以使用查询生成器在运行时在laravel3中使用动态WHERE子句构建查询吗?

Php 您可以使用查询生成器在运行时在laravel3中使用动态WHERE子句构建查询吗?,php,mysql,laravel,laravel-3,Php,Mysql,Laravel,Laravel 3,我知道在Laravel 4中,您可以根据以下问题在运行时创建动态WHERE子句: 但是你能在《拉威尔3》中也这么做吗 如果不是,则只能选择创建原始SQL代码,如下所示: $SQL = "SELECT * FROM " . $table; $first = 1; foreach($items as $key => $val) { if($first) $SQL .= " WHERE "; else $SQL .= " AND "; $SQL .= $key .

我知道在Laravel 4中,您可以根据以下问题在运行时创建动态WHERE子句:

但是你能在《拉威尔3》中也这么做吗

如果不是,则只能选择创建原始SQL代码,如下所示:

$SQL = "SELECT * FROM " . $table;

$first = 1;
foreach($items as $key => $val)
{
   if($first) $SQL .= " WHERE ";
       else $SQL .= " AND ";
   $SQL .= $key . " LIKE " . $VAL;
   $first = 0;
}

它的工作原理几乎完全相同。只需使用
$query=DB::table('tablename')取代相关文章中的第一行,然后使用它,如示例的其余部分所示。

您可以使用以下方法来完成此操作:

$query = DB::table($table);

if(isset($key1) && isset($val1)) {
    $query->where($key1, 'LIKE', $val1);
}

if(isset($key2) && isset($va2)) {
    $query->where($key2, '=', $val2);
}

$result = $query->get(); // returns all matching models

在调用
get()
方法之前,可以根据需要链接任意多个
where
子句。也可以查看以获得另一个想法。阅读本手册将对您有所帮助。

您可以使用查询生成器执行类似这样的查询

 $query = DB::table($table);

 // Get only the fields from the form that we care about...
 $form_fields = Input::get('email', 'username');

 // Build a dynamic query based on the form with WHERE's
 foreach ($form_fields as $name=>&$value) {
      $query->where($name, '=', $value);
 }

 // Finally get all of the results...
 $results = $query->get();

这在Laravel 3中确实很好。查看此[forum post以了解更多信息

这不起作用。我得到一个
方法[all]未在查询类上定义
您能否提供一个小的工作示例,说明如何在Laravel 3中实现这一点?@WildBill您能否向我们展示您正在使用的请求“all”的代码方法?如另一个问题所示,我尝试了一个“$query=$tableModel->newQuery();foreach($key=>$val的项){$query->where($key,“LIKE”、“%”.$val.%');}$query->all()`