您好我是Laravel的新手,我正在关注视图部分和表单重用的laracasts。
我正在编辑页面。 html看起来像这样:
@extends('app')
@section('content')
<h1>Edit: {!! $edu_content->title !!} </h1>
{!! Form::model($edu_content, ['method' => 'PATCH', 'url' => 'edu_contents/' . $edu_content->id ]) !!}
<div class="form-group">
{!! Form::label('title', 'Title:') !!}
{!! Form::text('title', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('tags', 'Tags:') !!}
{!! Form::text('tags', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('user_id', 'User ID:') !!}
{!! Form::text('user_id', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('location', 'Location:') !!}
{!! Form::text('location', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('file_size', 'File Size:') !!}
{!! Form::text('file_size', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('uploaded_at', 'Created On:') !!}
{!! Form::input('date','uploaded_at', date('Y-m-d'), ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::submit('Add Edu content!', ['class' => 'btn btn-primary form-control']) !!}
</div>
{!! Form::close() !!}
@if ($errors->any())
<ul class="alert alert-danger">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endif
@stop
但是,当我查看网页来源时,它会显示action="http://localhost/edu_contents"
而不是action="http://localhost/edu_contents/5"
。
然后,当我提交表格进行更新时,我得到:
MethodNotAllowedHttpException in RouteCollection.php line 201:
in RouteCollection.php line 201
at RouteCollection->methodNotAllowed(array('GET', 'HEAD', 'POST')) in RouteCollection.php line 188
at RouteCollection->getRouteForMethods(object(Request), array('GET', 'HEAD', 'POST')) in RouteCollection.php line 140
at RouteCollection->match(object(Request)) in Router.php line 744
at Router->findRoute(object(Request)) in Router.php line 653
at Router->dispatchToRoute(object(Request)) in Router.php line 629
at Router->dispatch(object(Request)) in Kernel.php line 229
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 50
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 54
任何人都可以解释错误以及为什么id不会出现在操作中吗?
我的路线看起来像Route::resource('edu_contents','EduContentsController');
答案 0 :(得分:0)
尝试更改执行操作的方式。试试这个(用你自己的方法更改更新方法):
'action' => ['EduContentsController@update', $edu_content->id
而不是:
'url' => 'edu_contents/' . $edu_content->id