当我从Laravel中的表单发出请求以将其存储在数据库中时,它会抛出此错误: MethodNotAllowedHttpException 。
我无法理解我做错了什么,所以能帮助我吗?
这是我的表格:
<form method="POST" action="/admin/ajax/edit">
{{ csrf_field() }}
<div class="textEdit">
<div class="marginizer">
<textarea id="edit" name="edit"></textarea>
</div>
</div>
<input type="submit">
</form>
这是我的路线档案:
Route::get('admin/dashboard', 'Dashboard@index');
Route::get('admin/dashboard/{id}', 'Dashboard@show');
Route::get('admin/dashboard/edit/{site}', 'Edit@edit');
Route::get('admin', 'Dashboard@index');
// Register and Login routes...
Route::get('admin/login', 'Login@index');
Route::get('admin/register', 'Register@index');
// Authentication routes...
Route::get('auth/login', 'Auth\AuthController@getLogin');
Route::post('auth/login', 'Auth\AuthController@postLogin');
Route::get('auth/logout', 'Auth\AuthController@getLogout');
// Registration routes...
Route::get('auth/register', 'Auth\AuthController@getRegister');
Route::post('auth/register', 'Auth\AuthController@postRegister');
// Ajax routes
Route::post('admin/ajax/edit', 'EditAjax@store');
// UI routes
Route::get('/', 'ThemeLoader@index');
Route::get('/{site}', 'ThemeLoader@show');
Route::get('migrate', 'migrate@migrate');
Route::get('migrate/refresh', 'migrate@refresh');
这是我的控制器处理请求:
public function store(Request $request) {
$content = new Content;
$content->site = 'Index';
$content->block = 1;
$content->content = $request->input('edit');
$content->active = 1;
$content->save();
}
它实际上正确地将数据存储在数据库中,但它仍然会出现错误。
答案 0 :(得分:1)
嗯,您是否通过php artisan route:list
检查了路线?
有时当我弄乱路线时,我得到了MethodNotAllowedHttpException并且必须清除它的缓存。
编辑。如果你的laravel项目目录不是htdocs的直接子项,那么这是可能的。因此,最好尝试{{ route('admin/ajax/edit') }}
答案 1 :(得分:0)
试试这个:
<form method="POST" action="{{ route('admin/ajax/edit') }}">
答案 2 :(得分:0)
MethodNotAllowedHttpException
通常在尝试对路由使用HTTP方法但未在路由文件中定义该方法时发生。例如,如果POST到方法,但只在routes.php中为路由定义GET方法。
答案 3 :(得分:0)
试试这段代码,我猜它可以帮到你:
<?php
{{ Form::open(array('action' => 'YourController@YourAction', 'method' => 'post')) }}
{{ csrf_field() }}
"..Your Form Inputs.."
{{ Form::close() }}
?>