【问题标题】:Laravel Website Cycle Navigation OrderLaravel 网站循环导航顺序
【发布时间】:2016-05-14 22:32:01
【问题描述】:

我目前正在用 Laravel 5.2 做我的大学论文,它是一个类似于 www.udacity.com 的课程网站。

我有以下型号:

  • 课程
  • 章节
  • 测验

一门课程可以有很多章节,而一个章节可能有也可能没有很多测验。我在每个模型中都指定了这些关系。

我想遵循与 Udacity 相同的查看顺序,用户只有一个“上一个”和“下一个”按钮来循环浏览课程。因此,如果我正在查看课程介绍,唯一可用的按钮是“下一步”,这将带我进入课程的第一章,那时我将拥有两个按钮,前一个按钮将带我回到课程intro 和下一个将带我进入本章的第一个测验或下一章(如果它没有任何测验)。

Udacity Order Example

目前,我有一个糟糕的上一个和下一个按钮逻辑,充满了 if 语句来确定是否有下一章/上一章/测验。

实现这一目标的最佳实践形式是什么?

感谢您的帮助!

【问题讨论】:

    标签: php laravel web navigation


    【解决方案1】:

    你为什么不使用 Laravel 的分页?
    https://laravel.com/docs/5.1/pagination

    $chapters = App\Chapter::paginate(1);
    or something like
    $chapters = App\Course::find(1)->chapters()->paginate(1);
    

    应该给你每页一章。
    然后你可以使用辅助方法来获取视图中的上一个和下一个链接,而不是显示所有链接:

    $results->hasMorePages()
    $results->nextPageUrl()
    $results->previousPageUrl()
    

    【讨论】:

    • 感谢您的帮助!虽然我必须添加一堆 if 语句才能知道该章是否有测验并引导我浏览不同的章节和测验,对吗?另外,我想保留我的 URL 结构,如下 mysite.com/course/1/chapter/2/quiz/2 并且我不知道如何使用分页来做到这一点。
    猜你喜欢
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多