Karim Hazem
Karim Hazem

Reputation: 21

LARAVEL 5.3 update form using AJAX

I am stuck on the update method.

Here is my code.

The edit.blade.php:

 <input type="hidden" name="_token" value="{{ csrf_token() }}">

        <form method="POST" id="updateCategory">
            <input type="hidden" name="category_id" id="category_id" value="{{ $raw_material_category->id }}">

            <input type="hidden" name="user_id" value="{{ Auth::user()->id }}">
            <input type="hidden" name="_method" value="PUT">

            <div class="form-group">
                <label for="category_name">Category name:</label>
                <input type="text" name="category_name" class="form-control" id="category_name" value="{{ $raw_material_category->category_name }}">
            </div>

            <input type="submit" id="addCategory" class="btn btn-success pull-right">
        </form>

The Script:

<script>
    $("#updateCategory").on("submit", function (e) {
        e.preventDefault();

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });


        $.ajax({
            type: "POST",
            url: "/categories/" + $("#category_id").val(),
            data: $(this).serialize(),
            success: function (data) {
                console.log(data);
                $('#errorDiv').css({"display": "none"});
            },
            error: function (xhr, ajaxOptions, thrownError) {
            }
        });
    });
</script>

The Controller:

public function update(Request $request, $id) {
$raw_material_category = raw_material_category::findorfail($id);
$raw_material_category::update($request->all());}

And here is the error I am getting:

ErrorException in categoriesController.php line 73: Non-static method Illuminate\Database\Eloquent\Model::update() should not be called statically

Upvotes: 1

Views: 3137

Answers (1)

Paras
Paras

Reputation: 9455

$raw_material_category is a variable not a class name

Replace $raw_material_category::update($request->all()); with $raw_material_category->update($request->all());

Upvotes: 2

Related Questions