首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用关系计数对Laravel集合进行排序

用关系计数对Laravel集合进行排序
EN

Stack Overflow用户
提问于 2016-04-12 10:34:04
回答 1查看 434关注 0票数 1

我已经努力了几天了,但我就是不能让它开始工作。

这里是一个例子,我有Laravel模型测试,问题,问题模型里面有test_id属性。我想按照给定测试的test_id = id中存在的问题数对test集合进行排序。

我都试过了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$tests = Test::select(
        array(
            '*',
            DB::raw('(SELECT count(*) FROM questions WHERE test_id = id) as count_questions'))
    )->with('questions')->orderBy('count_questions','desc')->paginate(5);

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$tests = Test::has('questions', '>', 3 )->with('questions')->get()->sortBy(function($test)
    {
        return $test->questions->count();
    });

但是结果是一样的,集合没有排序。

如果这很重要,我会使用json响应,并且当我试图回显$ test ->问句->count()时,我会得到每个测试的问题数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-13 08:43:03

结果发现,当我像这样返回时,排序就不起作用了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
return response()->json($tests);

但当我像这样回来的时候,一切都很好:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
return response()->json($tests->values()->all());

对我来说,这是很奇怪的行为,我从来没有遇到过这样的事情,如果有人能解释的话,我会感激的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36581355

复制
相关文章
推送-远程通知推送教程
本文翻译自:raywenderlich.com,原文作者:Jack Wu,译者:JMStack
進无尽
2018/09/12
4K0
推送-远程通知推送教程
推送通知策略分析
好的消息推送三要素:timely、personal、actionable。消息推送对用户留存率与活跃度至关重要。用户愿意打开消息推送,是对你的 App 的信任。 推送通知策略分析 智能手机的发展已经有近十年时间了,而在移动设备中,推送通知的潜力不可小觑。在进入 Slack 之前,Weiss 曾在 Foursquare 工作。Weiss 也曾是 Google 数据搜索项目的主要产品经理。对于推送通知的策略、投入、指标和准则,Weiss 有着深刻的智慧。 推送通知的发展 Weiss 总结了推送的三大特质:及时性、个人化和可操作性。在构建未来战略时,要考虑历史的车轮: 1. 推送通知的前辈 —— 电子邮件 在早期网络时代时,推送通知的形态其实就是电子邮件。电子邮件和推送之间有很多相似的地方。同样都是通过一个地址,让用户和网站进行开放式通信,甚至于电子邮件的「取消订阅」选项,其实就相当于通知中的推送设置。 2. 手机时代 当智能手机兴起后,用户越来越频繁地通过移动设备来完成娱乐甚至办公的需求,电子邮件在充当推送功能的这方面便开始没落了。作为互联网原住民的 90 及以后的用户,其实是很难感知到更早些时候的互联网习惯是 —— 每天检查邮箱好几次。因此当我们在回看历史的进展中,总会阅读到一些关于电子邮件如何成功进行营销的案例。 3. 来自短信的竞争 在手机上,推送通知是一则简短的文字。推送意味着需要很强的及时性,而不是像电子邮件一样发送出去后,几天内用户都未必会打开。另外值得关注的一点事,推送通知的实时性和对实时性的关注又是两个完全不同的概念,通过短信发送的通知,关注的优先级可能会更高。 4. 其他 App 也不是善类 当人们开始普遍使用智能手机时,屏幕基本是 4×4 网格,而现在,一个普通用户手机上大约有 55 个应用程序。对这么多的 App 来说,我们很难做到雨露均沾,不是每个应用都是 WeChat 或者 Facebook 这种国民级别的 App,因此这也就是推送通知变得越来越重要的原因。你的应用可能不会被用户经常使用,也可能不在主屏幕,甚至用户都可能忘了你,而一则推送则是唤醒用户的手段。 你不能依靠用户在天时地利时记起你,你得主动出击。 %image_alt% (Noah Weiss) 围绕以下原则构建推送策略 一则优秀的推送通知可能会考虑很多因素,比如设备附近的 WiFi、社会新闻热点或者其他重点组合起来考虑,再进行通知。Weiss 概述了他在开发推送通知系统时学到的基本经验: 1. 提升 App 的用户留存时间 从用户留存的角度来看,应用程序在脱离了它的功能之外,收益递减。因此在移动应用中,提高用户的留存时间是个不小的挑战。与此对应,现在已经有不少成熟的策略,诸如应用安装营销、社交渠道推广、SEO 和 SEM 等。然而真正的难点在于如何让新用户养成使用你 App 的习惯。 因此,在为你的应用打造所谓顶级用户体验之前,你得知道,仅仅当用户打开了这个应用程序才会有这个顶级用户体验。 2. 别让用户刚下载就想卸载 推送通知不仅是提升用户留存的好形式,同时在技术上也是必要的。在 iOS 平台,发送通知是必须让用户进行授权的权限,它不同于 Android 的直接授权,iOS 平台上下载安装完成应用后你必须提醒用户去设置这个权限。因此这成了一个关键节点,如果用户拒绝,那么很可惜,这个 App 对沉默用户将没有主动权,同时它的活跃度也会大幅下降。当然啦用户授权也不代表着这个 App 能怎样。 如果用户对这个 App 的推送感到厌烦,你能获得的最好的结果是用户主动选择某些通知处于活跃状态,而另一些通知保持沉寂。不过现实往往是残酷的,用户更可能到手机设置页面关掉所有推送通知,更坏的情况是直接卸载,而这个结果几乎是不可逆转的。 那么,应用的首次推送通知的体验将变得异常重要,否则用户就直接到设置界面投票了。 所以第一步是提醒用户进行通知权限的授权,如果用户答案是否定的,那其实后面也没什么关系了。它涉及用户忠诚度培养等其他东西,这是后话。鉴于通知权限的高额收益,如果你聪明的话,在这方面应该是非常谨慎的。 3. 三个指标衡量推送效益 用户拒绝通知权限请求的速度 卸载率 每百次操作 对于推送通知来说,你必须平衡用户积极参与和选择拒绝这二者之间的平衡。首先可以以卸载率和通知禁用率作为评估标准,对于消费者应用程序,卸载率低于 2% 是比较安全的。监控任何剧烈的数据波动都会有利于你的策略布置。 值得注意的一点事,要比较 iOS 和 Android 平台上的数据,因为 iOS 开放性远远低于 Android。同时,不同操作系统对于通知的处理方式也不一样,例如 Android 的通知可以显示内嵌照片,这可以提高 10% – 20% 的互动率。还有些通知是带有内置操作按钮,以便用
竹清
2018/08/31
1.5K0
用Python发送通知到企业微信,实现消息推送
点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 09:00准时推送,每月不定期赠送技术书籍。
可可的测试小栈
2022/11/11
3K0
用Python发送通知到企业微信,实现消息推送
Facebook 推送通知 Linkshim 绕过
在浏览和查找facebook漏洞时,我不小心发现了这个 facebook 推送通知链接
Khan安全团队
2022/01/21
1.1K0
推送-iOS本地通知
从 iOS 10 新增的 UserNotifications Framework 可以发现,Apple 整合了原有散乱的 API,并且增加了许多强大的功能。以 Apple 官方的角度来看,也必然是相当重视推送服务对 App 的影响、以及对 Apple iOS 生态圈长远发展的影响。
進无尽
2018/09/12
7.4K1
推送-iOS本地通知
Jenkins构建通知--推送gitlab
类似于监控报警,jenkins在配置持续集成后,job的执行将自动化,这就需要每次将构建结果通知到不同载体中进行查看。
陈不成i
2021/06/02
2.5K0
gitlab配置邮箱推送通知
右上角头像setting>------Preference>----->Notification
懿曲折扇情
2022/08/24
1.9K0
gitlab配置邮箱推送通知
java实现推送通知给iphone
    privatestatic String host = "gateway.sandbox.push.apple.com";     privatestatic int port = 2195;
用户2192970
2019/02/21
2.1K0
以太坊推送通知服务 EPNS
以平台无关的方式从分散和集中接收通知运营商。例如dApps, User Wallets, iOS和Android应用,Chrome或Firefox浏览器或任何其他这样的平台。
公众号---人生代码
2021/05/31
3.8K0
以太坊推送通知服务 EPNS
setInterval
坍圮的殿堂总还是庙,冷落的圣像依然是神。 在前端开发中我们或许想定时做一些操作 可以使用一个setInterval函数去做 // 定时控制台打印ruben setInterval(function () { console.log("ruben"); }, 1000); // 定时控制台打印achao,注意这里是使用字符串形式写法 setInterval('console.log("achao");', 1000); 可以打开控制台看到效果
阿超
2022/08/16
1.1K0
setInterval
cordova实现消息推送(本地通知)
本地通知的基本目的是使应用程序能够通知用户,它为他们提供了一些信息例如,当应用程序没有在前台运行时,通知用户一个消息或即将到来的约会。本地通知大多是基于时间的,如果触发就会在通知中心显示并呈现给用户。
仙士可
2019/12/19
2.8K0
cordova实现消息推送(本地通知)
Mac上自己推送iOS通知到设备
打开“终端(terminal)”,然后(注意,sudo需要的密码就是系统的root帐号密码)运行“sudo apachectl start”
用户6094182
2019/08/23
1.5K0
Mac上自己推送iOS通知到设备
给iOS模拟器推送远程通知
苹果刚刚发布了具有大量功能的Xcode 11.4 beta。值得注意的功能之一是在模拟器中模拟远程推送通知,这意味着现在可以在模拟器中触发远程通知。
韦弦zhy
2020/03/20
2.6K0
给iOS模拟器推送远程通知
在 React应用中实现Web推送通知
默认情况下,Create-react-app CRA的工作方式是在开发人员模式下不存在ServiceWorker,并且任何以前安装的sw都将被虚拟人替换。 首先,将src/index.js中的 serviceWorker.unregister() 替换为 serviceWorker.register()
wo.
2021/06/15
3.2K0
深度解密setTimeout和setInterval——为setInterval正名!
重复定时器,JS有一个方法叫做setInterval专门为此而生,但是大家diss他的理由很多,比如跳帧,比如容易内存泄漏,是个没人爱的孩子。而且setTimeout完全可以通过自身迭代实现重复定时的效果,因此setIntervval更加无人问津,而且对他退避三舍,感觉用setInterval就很low。But!setInverval真的不如setTimeout吗?请大家跟着笔者一起来一步步探索吧!
小美娜娜
2019/04/04
4K0
深度解密setTimeout和setInterval——为setInterval正名!
Android开发笔记(五十二)通知推送Notification
准备工作复习一下PendingIntent,前面的博文《Android开发笔记(五十)定时器AlarmManager》已经提到了它。PendingIntent意即延迟的Intent,主要用于非立即响应的通信场合。上回的博文,博主介绍了PendingIntent的用法,下面再列出有用到它的场合: 1、用于定时器AlarmManager,处理时刻到达后的提醒动作 2、用于通知推送Notification,处理点击通知后的相应动作 3、用于远程视图RemoteViews,处理远程控件上的点击动作 4、用于发送短信SmsManager,处理短信发送完的后续动作
aqi00
2019/01/18
2.6K0
编程技巧│浏览器 Notification 桌面推送通知
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170855.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
2.8K0
编程技巧│浏览器 Notification 桌面推送通知
setInterval停止
实现代码如下: var refreshIntervalId = setInterval(fname, 10000); /* later */ clearInterval(refreshIntervalId); var intervalID = setInterval(func, [delay, arg1, arg2, ...]); var intervalID = setInterval(function[, delay]); var intervalID = setInterval(code, [d
IT工作者
2021/12/29
2.8K0
点击加载更多

相似问题

在新数据推送时通知或更改Ajax setinterval上的css

20

使用ajax推送通知

12

用php推送通知

50

用nodejs推送通知

37

用fadeToggle()旋转器伪造AJAX调用

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文