我3小时前第一次开始使用Laravel,我正在尝试创建一本基本的金书,人们可以在这里写一些关于餐馆的好东西。
所以我使用命令php artisan make:controller GoldenbookController --resource
创建了我的控制器,然后使用命令php artisan make:model Goldenbook -m
创建了我的模型。在迁移中,我只是在迁移之前添加了“name”和“message”。我还在resource
文件
routes/web.php
创建视图和表单后,我尝试了它并收到以下错误:
MethodNotAllowedHttpException in RouteCollection.php line 218
我看到很多人都遇到这个问题,但解决问题的方法与我的情况不符,因为我使用Route::resource
告诉Laravel我的CRUD。
这是我的 GoldenBookController.php
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('goldenbook.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'nom' => 'required',
'message' => 'required'
]);
if($validator->fails()){
return redirect('/')
->withInput()
->withErrors($validator);
}
$goldenbook = new Goldenbook;
$goldenbook->nom = $request->name;
$goldenbook->message = $request->message;
$goldenbook->save();
return redirect()->back();
}
这是我的表单
{!! Form::open(['url' => 'goldenbook/create']) !!}
<div class="form-group">
{{ Form::label('name', 'Name') }}
{{ Form::text('name', null, ['class' => 'form-control']) }}
</div>
<div class="form-group">
{{ Form::label('message', 'Message') }}
{{ Form::textarea('message', null, ['class' => 'form-control']) }}
</div>
{{ Form::submit('Save', null,['class' => 'btn btn-primary']) }}
{!! Form::close() !!}
这是我的路线档案 web.php
Route::resource('goldenbook', 'GoldenbookController');
有什么想法吗?
提前谢谢
答案 0 :(得分:0)
web.php
和form
中的路线都存在问题。
您的web.php
应该包含goldenbook
Route::resource('goldenbook', 'GoldenbookController');
您的表单的路由应为goldenbook/store
或goldenbook
{!! Form::open(['url' => 'goldenbook/store']) !!}
或者您也可以传递路线的名称。
{!! Form::open(['url' => 'goldenbook.store']) !!}]
这可以解决您的问题。
如果您想知道路线的名称并使用Laravel 5.*
,可以使用
php artisan route:list
检查您的网址是否与路线匹配。
由于POST
路由只接受goldenbook/create
个请求,因此您使用GET
方法的路线错误。这应该可以解决您的问题。