1

Please help. I cannot create new object. This is the form where the painting will be created. When I open the website it says MethodNotAllowedHttpException and have no message.

In web.php (route)

Route::post('store','PaintingController@store');

In controller

        $last_line = DB::table('art_objs')->orderBy('Id_no', 'DESC')->first();
        $last = $last_line->Id_no;

        $art_objs = new Art_obj(
            ['Artist' => $request->get('Artist'),
            'Year' => $request->get('Year'),
            'Title' => $request->get('Title'),
            'Description' => $request->get('Description'),
            'Origin' => $request->get('Origin'),
            'Epoch' => $request->get('Epoch'),
            'Type_of_art'=>'1',
            'Type_of_coll'=>$request->input('Type_Coll'),
        ]);
        $art_objs->save();

In blade

<form method="post" action="store">  {{csrf_field()}} 
                <div class="form-group">
                    <label> Title: </label> <input type="text" name="Title" class="form-control" placeholder="Title"/> 
                </div>
                <div class="form-group">
                    <label> Artist: </label> <input type="text" name="Artist" class="form-control" placeholder="Artist" /> 
                </div>
                <div class="form-group">
                    <label> Year: </label> <input type="text" name="Year" class="form-control" placeholder="Year"/> 
                </div>
                <div class="form-group">
                    <label> Origin: </label> <input type="text" name="Origin" class="form-control" placeholder="Origin"/> 
                </div>
                <div class="form-group">
                    <label> Epoch: </label> <input type="text" name="Epoch" class="form-control" placeholder="Epoch"/> 
                </div>
                <div class="form-group">
                    <label> Description: </label> <textarea name="Description" class="form-control" rows="5" placeholder="description"></textarea> 
                </div>
                <div class="form-group">
                <label> Paint type: </label><input type="text" name="Paint_type" class="form-control" placeholder="Paint type"/> 
                </div>
                <div class="form-group">
                <label> Drawn on: </label><input type="text" name="Drawn_on" class="form-control" placeholder="Drawn on" /> 
                </div>
                <div class="form-group">
                <label> Style: </label><input type="text" name="Style" class="form-control" placeholder="Style"/> 
                <div class="form-group"> 
                    <input type="submit" class="btn btn-primary" value="CREATE" /> 
                </div>
                <input type="hidden" name="_method" value="PATCH" /> 
            </form>

enter image description here

3
  • Could you post php artisan route:list output? Commented Nov 7, 2018 at 14:56
  • 4
    MethodNotAllowedHttpException means that it can't find the route with the right method. Put a slash before store in your form (action="/store"), so that it won't try to use a subdirectory route. Commented Nov 7, 2018 at 14:56
  • I have add php artisan route:list output in the post. Commented Nov 7, 2018 at 15:03

3 Answers 3

2

Your url should be /painting instead of store. Please try:

<form method="post" action="/painting"> 
Sign up to request clarification or add additional context in comments.

Comments

1

Remove the following from your form:

<input type="hidden" name="_method" value="PATCH" />

1 Comment

Not a problem. Glad to help.
0

You used PATCH method then you should change the route to this:

Route::patch('store','PaintingController@store');

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.