[英]PHP DB access syntax: “$this->db->select…” How do I use “get()”?
[英]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.