tp5框架中 public function getkefanglist(){ $list=Db::name("kefang") ->field(['id','name','area','bed_size','price', 'kefangtag_ids','smallimage','hotel_limages','kefangother_ids']) ->where('status',1) ->select(); }这个方法查到的list中的kefangtag_ids是以字符串1,2,3这样存在,需要拿它去跟kefang_tag表中的id字段进行查询,应该怎么写
时间: 2023-12-29 16:03:38 浏览: 92
迅雷离线导出-crx插件
您可以使用`whereIn`方法来查询`kefang_tag`表中相应的记录。以下是您可以尝试的代码示例:
```php
public function getkefanglist(){
$list = Db::name("kefang")
->field(['id','name','area','bed_size','price',
'kefangtag_ids','smallimage','hotel_limages','kefangother_ids'])
->where('status', 1)
->select();
$tagIds = [];
foreach ($list as $item) {
$tagIds = array_merge($tagIds, explode(',', $item['kefangtag_ids']));
}
$tagIds = array_unique($tagIds);
$tags = Db::name("kefang_tag")
->whereIn('id', $tagIds)
->select();
// 现在,$tags 中存储了与 kefangtag_ids 相关的 kefang_tag 记录
return $list;
}
```
在上面的示例中,我们首先获取了`kefang`表中的所有记录。然后,我们将每个记录中的`kefangtag_ids`字段按逗号拆分成数组,并将所有的标签ID保存到`$tagIds`数组中。接下来,我们使用`whereIn`方法查询`kefang_tag`表中的相关记录,并将结果存储在`$tags`变量中。最后,返回查询到的列表。
请注意,以上代码仅提供了一种实现方式,您可以根据实际需求进行调整和优化。
阅读全文