如何在laravel中创建没有url参数的相关对象?

时间:2019-02-05 01:26:13

标签: php laravel

我有一些相关的模型TextbookChapter等。显然,Textbook有许多Chapter,因此两个模型都具有双向的雄辩关系方法。

上周,我以textbook/{textbook}/chapter/create出发。这一次,我只是在没有textbook模型的情况下进行路由。在此之前,这种绑定太长且太复杂了..就像.. textbook/{textbook}/chapter/{chapter}/section/{section}/item/{item} ..所以我放弃了。

在那之后,我尝试了深度二(?)样式。..textbook/{textbook}/chapter/{chapter}chapter/{chapter}/section/{section},...在短期内效果很好,但在多对多关系中显示我需要时找不到合适的父模型的问题。

如何找到没有大量url参数链的正确父模型?

2 个答案:

答案 0 :(得分:2)

我会说在路由中使用url参数是一种方法。但是您可以通过以下其他方式进行操作:

创建路由/chapter/create,因为它是标准资源类别。

并将textbook_id,section_id等作为隐藏参数传递给控制器​​。这使得url清理器可以用于更大的关系深度。

/chapter/create的网址比textbook/123/section/345/chapter/create干净得多

因此,当您重定向到创建路线时,当前正在url中传递textbook_id和section_id等,而不是通过->with()传递到刀片,然后使用该数据设置隐藏输入的值。

答案 1 :(得分:0)

我做了一些研究,并以非常简单的方式解决了问题。

当我传递非URL参数时,可以通过Request对象使用此参数。无论如何,即使这不是我第一次传递URL参数,我也不知道我可以为此使用Request ...