【发布时间】:2018-08-05 23:09:12
【问题描述】:
我已将我的实体替换为 Blog 以便更好地解释。
我有以下路线:
Route::get('/blog-category', 'BlogController@showBlogCategory')
它显示了一个表单,其中包含不同博客类别的下拉列表以及与该类别相关的一些其他输入字段
POSTs 格式如下:
Route::post('/blog-details', 'BlogController@showBlogDetails')
在这里我验证表单的请求,如果博客类别无效或丢失,则返回
这个方法被称为showBlogDetails,因为类别和其他字段被传递到下一个视图return view('blog-details', compact('blogCategoryData'))
在此视图中,有一个表格可以填写博客的其余详细信息。
blogCategoryData(每个数据都有一个隐藏的输入字段)和博客详细信息都POSTed 到以下路线:
Route::post('/blog-store', 'BlogController@store')
这也使用Request 进行验证,但如果失败,它会尝试返回,但它不能这样做,因为只有POST 被允许到达那里。
我需要博客类别字段才能显示博客详细信息,如果没有任何内容,则无法创建 Blog,因此我也无法临时创建。
选择/填写博客类别字段然后输入详细信息的流程是一项要求,因此必须在 2 个不同的页面中按此顺序完成。
所以目前是:
GET -> POST (validate) -> POST (validate)
解决此问题的最佳方法是什么,或者如何使当前的流程正常工作?
【问题讨论】:
-
为什么不将添加类别移动到单独的页面,然后在博客创建页面中您只需要选择已经在类别创建页面中检查和验证的类别
-
@ashokpoudel 你的意思是把所有东西都移到一页吗?
-
不,我的意思是。创建一个页面,您可以在其中创建类别,并在第二个页面中创建帖子创建一个下拉列表,您可以在其中选择类别并填写博客帖子的其他字段
-
@ashokpoudel 我可以做到,但我认为这将是一张额外的桌子,因为它本身并不是真正的东西,它总是属于一个
Blog所以它应该真的在Blog表中 -
没有一个类别可以有很多帖子。让我们考虑一个例子,其中旅游是类别。然后你可以有很多与旅游相关的帖子。所以你为类别创建了一个不同的表,并将类别的外键放在博客表中
标签: php laravel laravel-validation laravel-request