在 ThinkPHP 中,可以使用in方法随机提取数据库不同栏目id的文章,下面是一个简单的示例:
php
// 假设有一个文章模型 Article
class Article extends Model
{
// 获取多栏目下的随机文章
public function getRandomArticles($cate_ids)
{
$map = ['status' => 1];
$cate_ids = is_array($cate_ids)?$cate_ids:[$cate_ids];
$map['cate_id'] = ['in',$cate_ids];
$list = $this->where($map)->orderRaw("rand()")->limit(5)->select();
return $list;
}
}
在上述代码中,首先定义了一个getRandomArticles方法,该方法可以根据传入的栏目id数组获取随机的文章列表。在方法中,使用is_array函数判断$cate_ids是否为数组,如果不是则将其转换为数组。然后,通过where方法和in操作符构建查询条件,将status字段的值限制为1,并将cate_id字段的值设置为传入的栏目id数组。接下来,使用orderRaw方法和rand()函数对结果进行随机排序,以获取随机的文章顺序。最后,使用limit方法限制结果集的数量为5条,并使用select方法执行查询语句并返回查询结果。
请注意:上述代码只是一个示例,实际使用时需要根据自己的需求进行调整和扩展。另外,在使用rand()函数进行随机排序时,每次执行查询都可能返回不同的结果。