无法通过Laravel更新数据库

你好

我想通过Laravel Form编辑我的数据库。编辑可以工作,但是当我想更新数据库时,它显示以下错误。

RouteCollection.php第219行中的MethodNotAllowedHttpException:

这是我的控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Course;

class courseController extends Controller
{
    public function index()
    {
        $alldata=Course::all();
        return  view('course.index',compact('alldata'));
    }


    public function create()
    {
        return view('course.create');
    }


    public function store(Request $request)
    {
        $input = $request->all();
        Course::create($input);
        return redirect('course');
    }   


    public function show($id)
    {
        //
    }


    public function edit($id)
    {
        $course=Course::findOrFail($id);
        return view('course.edit',compact('course'));
    }


    public function update(Request $request, $id)
    {
        $input = $request->all();
        $data=Course::findOrFail($id);
        $data->update($input);
        return redirect('course');
    }


    public function destroy($id)
    {
        $data=Course::findOrFail($id);
        $data->delete($input);
        return redirect('course');
    }

}

这是我的编辑页面:

<html>
    <head> 
        <title> Update Course </title>
         <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
        <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    </head>
    <body>

        <div class="container" >
            <h3> Update course </h3>
        {!! Form::open(array('route' =>['course.update',$course->course_id],'class'=>'form-horizontal')) !!}
        {!! Form::token(); !!}
            <?php echo csrf_field(); ?>
            <div class="form-group">
                <label >Course Code</label>
                <input type="text" name="course_code" class="form-control"  value="{{$course->course_code}}">
            </div>
            <div class="form-group">
                <label >Course Title</label>
                <input type="text" name="course_title" class="form-control" value="{{$course->course_title}}">
            </div>
            <div class="form-group">
                <label>Course Credit</label>
                <input type="text" name="course_credit" class="form-control" value="{{$course->course_credit}}">
            </div>

            <button type="submit" class="btn btn-default">Update</button>
        {!! Form::close() !!}
        </div>
    </body>
</html>

这是路线:

<?php

Route::resource('course','courseController');



Route::group(['middleware' => ['web']], function () {

});

如果有人可以解决问题,请帮助。

Maytham-ɯɐɥʇʎɐɯ

尝试编辑时,需要根据此链接添加方法类型

指定不同的方法

您可以在表单中使用POST以外的方法。在数组参数中传递所需的“方法”。有效的方法是“获取”,“放置”,“修补程序”,“发布”或“删除”。

因此,在您的情况下,您需要添加'method' => 'patch'Form::open..

因此,刀片中的最终代码将如下所示:

{!! Form::open([
    'method' => 'PATCH',
    'route' => ['course.update',$course->course_id],
    'class'=>'form-horizontal'
]) !!}

另外,我可以看到您正在使用php标签,例如<?php echo csrf_field(); ?>,我想您知道在Laravel中可以使用{{ csrf_field() }}相等的标签,但是由于我对您的代码没有深入的了解,因此留给您使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章