You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 10中能否在Eloquent请求中按条件调用不同方法?

Laravel 10 通知查询代码简化方案

你想把原有的if-else逻辑简化成一行代码的思路没问题,但你写的代码存在PHP语法错误,不能直接在->后用三元运算符调用方法。以下是两种合法的简化写法:

写法一:先定义方法名变量

$method = $onlyUnread ? 'unreadNotifications' : 'notifications';
return auth()->user()->$method()->latest()->paginate($backendPerPage);

写法二:一行内动态调用方法

return auth()->user()->{$onlyUnread ? 'unreadNotifications' : 'notifications'}()->latest()->paginate($backendPerPage);

说明

在PHP中,动态调用对象方法时,需要用大括号{}包裹方法名的表达式,这样PHP才能正确解析要调用的方法名称。上述两种写法和你原本的if-else逻辑完全等价,既简化了代码,也保证了可读性。

内容的提问来源于stack exchange,提问作者mstdmstd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 03:17:07