繁体   English   中英

如何在DB-> select Laravel中使用条件

[英]How to use the condition in DB->select Laravel

我想过滤从数据库中获取的列。

我有一个像这样的数组:

$array = array('name', 'year', 'hobbies');

想从db only列获取数据(如果它在数组中)。 像这样的代码,但此代码不起作用。

$query->select(
    if (in_array("name",$array)) {
      'name',
    }
    if (in_array("year",$array)) {
      'year',
    }
    if (in_array("hobbies",$array)) {
      'hobbies'
    }
  );

在foreach中进行数据库查询后,我无法执行此操作。

如果您给我任何想法或解决方案,我将非常高兴。 谢谢

顺便说一句:对不起,英语不好。

您可以在查询构建器中使用where。

看这个例子。

$foo = DB::table('tableName')->where('Column', 'Value')->get();

按照该示例进行操作,然后过滤结果,但是如果要过滤列,则可以使用该示例

->select('name', 'email as user_email')

对不起,我的英语不好。

您可以使用addSelect函数。

从此代码:

$query->select(
    if (in_array("name",$array)) {
      'name',
    }
    if (in_array("year",$array)) {
      'year',
    }
    if (in_array("hobbies",$array)) {
      'hobbies'
    }
  );

应该:

   $query->select("id","foo","test"); // foo , test sample columns


   if (in_array("name",$array)) {
      $query->addSelect("name"); // or $query->addSelect(DB::raw("name"));
   }
   if (in_array("year",$array)) {
      $query->addSelect("year"); // or $query->addSelect(DB::raw("year"));
   }
   if (in_array("hobbies",$array)) {
      $query->addSelect("name"); // or $query->addSelect(DB::raw("hobbies"));
   }

 $query = $query->get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM