【发布时间】:2017-01-08 01:54:45
【问题描述】:
我在 3 小时前第一次开始使用 Laravel,我正在尝试创建一本基本的黄金书,人们可以在其中写一些关于餐厅的好东西。
所以我使用命令php artisan make:controller GoldenbookController --resource 创建了我的控制器,然后使用命令php artisan make:model Goldenbook -m 创建了我的模型。在迁移中,我只是在迁移之前添加了“名称”和“消息”。我还在routes/web.php 文件中添加了resource
创建视图和表单后,我试了一下,报错:
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');
有什么想法吗?
提前谢谢你
【问题讨论】:
-
Route::resource('livre-dor', 'GoldenbookController');应该是Route::resource('goldenbook', 'GoldenbookController'); -
这是一个错字,我尝试了几件事,然后在这里寻求更多帮助,但为 Goldenbook 更改 'livre-dor' 并没有改变任何东西
-
我明白了。另一件事:
{!! Form::open(['url' => 'goldenbook/create']) !!}应该只是{!! Form::open(['url' => 'goldenbook']) !!},因为路由控制器会自动调用store函数来对该资源进行 POST。 (laravel.com/docs/5.3/controllers)
标签: php forms exception laravel-5