【问题标题】:laravel 5; redirect to previous section after store or view拉拉维尔 5;存储或查看后重定向到上一部分
【发布时间】:2017-09-27 09:23:56
【问题描述】:

我认为这是一个基本问题或问题,但我找不到任何解决此问题的解决方案,所以我可能以错误的方式或错误的关键字进行搜索。

我的数据库中有很多文章,并且有多种方法可以在网站上阅读/编辑它们。 - 访问者可以在列表中看到它们,点击它们并阅读整篇文章 - 注册用户可以在同一个列表中看到他们,但点击他们阅读或编辑文章 - 管理员可以看到不同的列表(不同的视图),并编辑或删除它们 我相信我会想出一些其他方法来阅读或编辑文章或其他数据。

关键是,如果访问者或用户已经阅读或编辑了文章,我希望他们返回到他们自己的文章索引,但如果管理员已经阅读或编辑了文章,我希望他回到管理索引。

所以从一开始我就有很多路线:

Route::get('/article'... will display the index of articles
Route::get('/article/{name}'... will display an article
Route::get('/article/{name}/edit'... will display the edit form for the article
Route::post('/article/{name}'... will update the article

对于管理员:

Route::get('/admin/article'... will display the index of article
Route::get('/admin/article/{name}'... will display an article
Route::get('/admin/article/{name}/edit'... will display the edit form for the article
Route::post('/admin/article/{name}'... will update the article

但是..Route::post('/article/{name}' 和 Route::post('/admin/article/{name} 应该指向同一个函数来更新数据,并且该函数应该重定向到不同的路线,在这种情况下 Route::get('/article'Route::get('/admin/article'

我真的不想编写 2 个不同的例程来存储或更新数据库中的数据,实际上它们是相同的,除了更新或存储后的“重定向”行。

我的第一个想法是创建 2 条路由,在我的控制器中有两个条目,每个条目调用相同的例程来保存数据,并返回我可以重定向的位置,但是我必须在我的表单中使用不同的“操作” .这意味着我必须制作 2 个相同的表单,除了“动作”行。

无论我做什么,我都必须根据我在开始阅读或编辑数据之前所在的网站部分重定向某个地方。

我读过一些关于 'back()' 函数的内容,但这对我没有帮助,因为我希望能够阅读一篇文章,然后选择对其进行编辑,然后返回到我的索引。

我希望我能够解释我想要做什么,而且我确定我不是唯一一个在寻找这个的人,但是我再次未能找到正确的解决方案。

实现这一目标的最佳方法是什么?!?

【问题讨论】:

    标签: redirect laravel-5 routes


    【解决方案1】:

    我只是将普通用户和管理员用户之间的控制器分开。这样您的代码将保持干净和易于理解。

    例如,您可以制作以下文件夹结构:

    app
     - Http
      - Controllers
       - Admin
       - User
    

    不要忘记更改控制器中的命名空间。

    如果您真的想为两个用户都使用同一个控制器,那么您需要编写某种 if else 语句来查看您正在处理的用户类型并重定向该结果。您的应用程序中有某种角色结构吗?

    【讨论】:

    • 我确实有文章的控制器。在我看来,那是最干净的。还有一个角色结构。但问题是,在我的文章控制器中,当我在保存后重定向时,我必须根据我来自哪里重定向到一条路线。如何查看我网站的哪个部分称为文章控制器?
    • 只需制作一个用户文章控制器和一个管理员文章控制器。关于重定向,您只有 2 个选项吗?用户还是管理员?将您的管理路由指向管理文章控制器,将用户指向用户文章控制器。您还可以根据角色制作某种 if else 语句,然后重定向到正确的位置
    • 这是一种可能性,但不是我想要的。对于水獭模型,我也需要这个“技巧”。所以我肯定在寻找一个选项,根据我来自的部分或根据当前 URL 有条件地重定向。
    • 也许你可以使用 Laravel 的 URL 助手来完成你想要的。 laravel.com/docs/5.4/helpers#urls
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 2020-06-01
    • 2014-12-21
    相关资源
    最近更新 更多