请求中缺少Laravel表单输入
我有以下表格:请求中缺少Laravel表单输入,laravel,laravel-5,Laravel,Laravel 5,我有以下表格: <form action="{{ route('admin.blocks.store', [$page->id]) }}" method="post"> <fieldset> <div> <input id="block--page-id" name="page_id" type="text" disabled value="{{ $page->id }}">
<form action="{{ route('admin.blocks.store', [$page->id]) }}" method="post">
<fieldset>
<div>
<input id="block--page-id" name="page_id" type="text" disabled value="{{ $page->id }}">
<lable for="block--page-id">Page ID</lable>
</div>
<div>
<input id="block--name" name="name" type="text">
<label for="block--name">Name</label>
</div>
<div>
<input id="block--description" name="description" type="text">
<label for="block--description">Description</label>
</div>
<div>
<input id="block--key" name="key" type="text">
<label for="block--key">Key</label>
</div>
<div>
<textarea id="block--value" name="value">
</textarea>
<label for="block--value">Value</label>
</div>
<div>
<button type="submit">Create</button>
</div>
{{ csrf_field()}}
</fieldset>
但是,我对
page\u id
的输入没有传递到请求中。所有其他输入都可以正常工作,因此我不确定还有什么可能出错。将表单操作更改为:
<form action="{{ route('admin.blocks.store', ['page_id'=> $page->id]) }}" method="post">
在控制器代码中,您不需要从请求中获取$pageId
,因为它已经作为路由参数存在
public function blocksStore(Request $request, $pageId)
{
$block = new PageBlock();
$block->page_id = $pageId;
$block->save();
return redirect('admin.pages.edit', [$pageId]);
}
由于元素已禁用,因此将不会提交该元素。因此,将其更改为
type=“hidden”
:
是否有办法在页面上显示为已禁用但仍提交?我希望能够看到我正在使用的id。我想我可以有另一个隐藏的字段和一个禁用的字段,然后访问请求中禁用的字段?@SamWillis您可以尝试或只是在元素附近显示数字。
Route::post('/your_url/{page_id}', 'SomeController@store')->name('admin.blocks.store');
public function blocksStore(Request $request, $pageId)
{
$block = new PageBlock();
$block->page_id = $pageId;
$block->save();
return redirect('admin.pages.edit', [$pageId]);
}
<input id="block--page-id" name="page_id" type="hidden" value="{{ $page->id }}">