今天在开发项目的时候出现这样的问题,用户点击一个新闻详情的时候,会随机推荐几个其他的文章.挺简单的东西.
可是问题来了...
傻吊的我先用了这种方法:
<?php
//获取文章数据
$data = Db::table('news')->select();
//循环 5 次搞他
for ($i=0; $i < 5; $i++) {
$arr[] = $data[array_rand($data, 1)];
}
//然后输出给模板.....
?>
然后就是这个样子的....
这么写有很多 BUG,而且还挺傻逼的!
然鹅我突然想起来 MySQL 不是有个rand的关键词吗?
$data = Db::table('news')->order('rand()')->limit(5)->select();
这么写好报错了....
正确写法是:
$data = Db::table('news')->orderRaw('rand()')->limit(5)->select();
完成了...

![[ThinkPHP5]小记,文章随机推荐文章的写法!](/api/qr/qr.png?url=https://blog.kieng.cn/684.html)
![[ThinkPHP5]小记,文章随机推荐文章的写法! [ThinkPHP5]小记,文章随机推荐文章的写法!](https://blog.kieng.cn/wp-content/uploads/2019/03/2019032706550599.jpg)
![[ThinkPHP5]小记,文章随机推荐文章的写法! [ThinkPHP5]小记,文章随机推荐文章的写法!](https://ae03.alicdn.com/kf/UTB8FOaiuFfJXKJkSamHq6zLyVXaB.jpg)





