【发布时间】: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()' 函数的内容,但这对我没有帮助,因为我希望能够阅读一篇文章,然后选择对其进行编辑,然后返回到我的索引。
我希望我能够解释我想要做什么,而且我确定我不是唯一一个在寻找这个的人,但是我再次未能找到正确的解决方案。
实现这一目标的最佳方法是什么?!?
【问题讨论】: