2014-11-24 102 views
0

我有人为一个网站创建一堆模板(主题),并希望将数据传递给视图灵活。Laravel,视图中的自定义函数

例如,对于系统中的用户,我希望能够提供顶级x用户和最新x用户。在我的控制器中,我不想将这些数据传递给视图,因为他可能只需要前5名用户,而我正在查询前10名 - 或者更糟糕的是,我可能只获得前5名,而他想要前10名。

我想有两种方法可以做到这一点。

1 - 查看“助手”文件,其中可能包含类似的功能。 getTopUsers($count)getNewestUsers($count)这将做模型/回购调用。

2 - 创建一个视图展示器来保留这些额外的功能。我已经看了一下,似乎有两个主要演示者包 - https://github.com/ShawnMcCool/laravel-auto-presenterhttps://github.com/laracasts/Presenter

也许有更好的办法吗?

有可能是这些半打,各种型号...

回答

0

我会弹出一些客户端代码到您的意见和访问路由控制器动作(默认情况下返回JSON)和有条件将该特定片段添加到您的视图中(通过传递给视图的变量来确定该人是否已登录)。然后,您可以将auth筛选器应用于您的路线以保护它。

注意:使用这种方法,您可以将url参数传递给您的操作。这意味着您可以告诉您的控制器更轻松地限制您的结果。

0

这是一个非常有趣的问题,我的朋友。我能想到的是以下

1)廉价的方式,只是查询10或取其最大的号码,然后通过一个变量$ count的视图或让视图传递一个变量,以副视点

2)api调用,如果你想进行AJAX调用,那么就像别人建议的那样,你可以设计一个新的路由,getData?count = 5。

正常情况下,满足所有要求并不容易,实际上在原型阶段中,编写像getData5和getData10这样的固定函数或仅编写两页文件会更具成本效益:)它将成为比创建另一个新的架构设计要快得多,然后最终没有人真正使用它们。