【发布时间】:2018-11-20 16:20:01
【问题描述】:
我是 Laravel 5.5 中命名路由的新手,在尝试执行表单操作时遇到了一件奇怪的事情;
设置和说明:
我在 web.php 中设置了路由
Route::post('questions/save_bulk', 'QuestionsController@save_bulk')->name('save_bulk');
Route::post('questions/store_bulk', 'QuestionsController@store_bulk')->name('store_bulk');
然后我在QuestionsController中设置store_bulk和save_bulk:
public function store_bulk(Request $request)
{
//$x = some DB::selects statements;
return view('questions.store_bulk', ['x'=> $x]);
}
public function save_bulk(Request $request){
dd($request);
}
最后这是我在questions.store_bulk 中的刀片形式,应该会导致QuestionsController.save_bulk:
<form method="post" action="{{route('save_bulk')}}">
{{csrf_field()}}
/* some codes and input fields */
<div class="form-group">
<input type="submit" class="btn btn-primary" value="Submit"/>
</div>
</form>
问题
问题在于,当我提交此表单时,并没有将我带到所需的路线并执行dd($request),它只是在没有输入的情况下刷新页面,就好像 Laravel 采用了最后一个返回视图的发布表单questions.store_bulk。
虽然这与我最初进入视图 questions.store_bulk 的方式完全相同,但发生了一件奇怪的事情:当我尝试检查刀片页面中的元素时,我得到以下信息:
<form method="post" action="http://127.0.0.1:8000/questions/store_bulk">
/* some codes and inputs */
</form>
在代码中,路由应该转到QuestionsController.save_bulk,但是在检查 HTML 时,它说它转到http://127.0.0.1:8000/questions/store_bulk,如果我在 HTML 中手动检查和更改路由并写入http://127.0.0.1:8000/questions/save_bulk,它会转到右侧路由并执行dd($request)。
问题
为什么会这样?我错过了什么吗?
注意
我在我的电脑上本地使用 Laravel 5.5 准备一个网站。
【问题讨论】:
标签: html laravel forms laravel-5