Laravel,自定义函数用于视图

时间:2014-11-24 01:26:06

标签: laravel laravel-4

我正在为某个网站创建一组模板(主题),并希望将传递给视图的数据保持灵活。

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

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

1 - 一个视图“helpers”文件,它可以包含像。 getTopUsers($count)getNewestUsers($count)将进行模型/回购调用。

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

也许有更好的方法?

对于各种型号,可能有六打这些......

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

1)便宜的方式,只需查询10或其中最大的数字,然后将变量$ count传递给视图或让视图将变量传递给子视图

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

通常情况下,要满足所有要求并不容易,实际上在原型阶段,编写像getData5和getData10这样的固定函数或者只是制作两个页面会更具成本效益:)它将是一个比提出另一个新的架构设计快得多,然后意识到最终没有人真正使用它们。