我尝试制作一个" getThreeWorks" Laravel的方法。每个视图发布到其“方向”#39;它存储在同一个表中。例如,"工作1具有Web方向,工作2具有2D方向,工作3具有3D方向"。
在每篇文章的最后,我想提出一个链接到其他3个作品(以随机顺序)。
所以我希望链接到一个包含" web"方向,另一个有" 2D"方向和具有" 3D"取向。
我根本无法获得SQL查询。你能帮助我吗 ?谢谢!
public function getThreeWorks()
{
$workFrom3D = Work::where('orientation', '3D')->inRandomOrder->limit(1)->get();
$workFrom2D = Work::where('orientation', '2D')->inRandomOrder->limit(1)->get();
$workFromWeb = Work::where('orientation', 'web')->inRandomOrder->limit(1)->get();
}
答案 0 :(得分:0)
你不能删除限制(1)而是按方向使用组吗?然后你会得到其中一个。
答案 1 :(得分:0)
您可以使用当前代码创建新集合。
$work = collect([$workFrom3D, $workFrom2D, $workFromWeb]);
答案 2 :(得分:0)
如果我理解,你想要展示一些"帖子"在每个帖子的页脚上,对吧?你可以试试这个:
public function getThreeWorks()
{
$workFrom3D = Work::where('orientation', '3D')->get();
$workFrom2D = Work::where('orientation', '2D')->get();
$workFromWeb = Work::where('orientation', 'web')->get();
$randomFrom3d = $workFrom3D->random();
$workFrom2D = $workFrom2D->random();
$workFromWeb = $workFromWeb->random();
}
另外,您应该在您的位置再添加一个条件,以避免在页面上重复显示此列表的相同帖子,例如:
$workFromWeb = Work::where('orientation', 'web')
->where('post_id','!=', $actualPostId)->get();