首页 > 解决方案 > 此路由不支持 GET 方法。支持的方法:PUT

问题描述

我想将值存储到数据库并重定向到新页面,但发现此错误。我多次更改代码,但显示相同的错误。我不断地发现这个错误。如果有任何技巧可以避免错误,请提供给我。我尝试了很多可能的事情,但错误是一样的。任何更改在这里都没有帮助。

路由.php

            Route::get('/create',   ['as'=>'creates','uses'=>'CAsController@create2']);
            Route::put('/postca', 'CAsController@storing');

CAs控制器

    namespace App\Http\Controllers;
    use App\CAModel;
    use Illuminate\Http\Request;

   class CAsController extends Controller
    {
    public function create2(){
    return view('chartered.create');
}
public function storing(Request $request)
{
    // Handle File Upload
    if($request->hasFile('profile')){
        // Get filename with the extension
        $filenameWithExt = $request->file('profile')->getClientOriginalName();
        // Get just filename
        $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
        // Get just ext
        $extension = $request->file('profile')->getClientOriginalExtension();
        // Filename to store
        $fileNameToStore= $filename.'_'.time().'.'.$extension;
        // Upload Image
        $path = $request->file('profile')->storeAs('public/profile', $fileNameToStore);
    } else {
        $fileNameToStore = 'noimage.jpg';
    }


    // Handle File Upload
    if($request->hasFile('certificate')){
        // Get filename with the extension
        $filenameWithExt1 = $request->file('certificate')->getClientOriginalName();
        // Get just filename
        $filename1 = pathinfo($filenameWithExt1, PATHINFO_FILENAME);
        // Get just ext
        $extension1 = $request->file('certificate')->getClientOriginalExtension();
        // Filename to store
        $fileNameToStore1= $filename1.'_'.time().'.'.$extension1;
        // Upload Image
        $path1 = $request->file('certificate')->storeAs('public/certificate', $fileNameToStore1);
    } else {
        $fileNameToStore1 = 'noimage.jpg';
    }

    $ca = new CAModel;
    $ca->fname = $request->input('fname');
    $ca->lastname = $request->input('lastname');
    $ca->username = $request->input('username');
    $ca->city = $request->input('city');
    $ca->state = $request->input('state');
    $ca->zip = $request->input('zip');
    $ca->phone = $request->input('phone');
    $ca->email = $request->input('email');
    $ca->gstno = $request->input('gstno');
    $ca->website = $request->input('website');
    $ca->services = $request->input('services');
    $ca->profile = $fileNameToStore;
    $ca->certificate = $fileNameToStore1;  
    $ca->save();
    return redirect('/postca');
}

}

          <form action="/postca" method="POST">
        @method('PUT')
      @csrf
        <div class="row">
          <div class="col-sm-4">
            <div class="form-group">
              <input type="text" name="fname" id="fname" placeholder="First Name" class="form-control" required>
            </div>
          </div>
          <div class="col-sm-4">
              <div class="form-group">
                <input type="text" name="lastname" id="lastname" placeholder="Last Name" class="form-control" required>
              </div>
          </div>
          <div class="col-sm-4">
              <div class="form-group">
                <input type="text" name="username" id="username" placeholder="UserName" class="form-control" required>
              </div>
          </div>
        </div>  
        <div class="row">
            <div class="col-sm-4">
              <label for="city">City</label>
              <input type="text" class="form-control" id="city" name="city" placeholder="City" required> 
            </div>
            <div class="col-sm-4">
              <label for="state">State</label>
              <input type="text" class="form-control" name="state" id="state" placeholder="State" required> 
            </div>
            <div class="col-sm-4">
              <label for="zip">Zip</label>
              <input type="text" class="form-control" id="zip" name="zip" placeholder="Zip" required> 
            </div>
        </div>
        <div class="row">
            <div class="col-sm-6">
                    <label for="phone">Phone</label>
                    <input type="text" class="form-control" name="phone" id="phone" placeholder="Phone" required>
            </div>
            <div class="col-sm-6">
                    <label for="email">Email</label>
                    <input type="text" class="form-control" name="email" id="email" placeholder="Email" required>
            </div>
        </div>
        <div class="row">
            <div class="col-sm-6 col-md-4 col-sm-4">
                    <label for="gstno">GST No</label>
                    <input type="text" class="form-control" id="gstno" name="gstno" placeholder="GST number" required>    
            </div>
            <div class="col-sm-6 col-md-4 col-sm-4">
                    <label for="website">Website</label>
                    <input type="text" class="form-control" id="website" name="website" placeholder="GST number" required>
            </div>
        </div>
        <div class="form-group">
            <label for="services">Select the Services you provide</label>
            <select multiple class="form-control" name="services" id="services" multiple>
              <option>Propertiership</option>
              <option>One Person Company</option>
              <option>Limited Liability Partnership</option>
              <option>Private Limited Company</option>
              <option>Public Limited Company</option>
            </select>
          </div> 
          <div class="row">
              <div class="col-sm-6">
              <div class="form-group">
                  <div class="custom-file">
                          <input type="file" class="custom-file-input" id="profile" name="profile" required>
                          <label class="custom-file-label" for="profile">Profile Photo</label>
                  </div>
              </div>
              </div>
          <div class="col-sm-6">
          <div class="form-group">
              <div class="custom-file">
                      <input type="file" class="custom-file-input" id="certificate" name="certificate" required>
                      <label class="custom-file-label" for="certificate">Company Incorporation Certifcate</label>
              </div>
          </div>
          <div class="form-group">
              <input class="btn btn-primary" type="submit" value="Go!">
          </div>
          </form>

标签: phppostlaravel-5eloquentget

解决方案


在您的控制器中,您返回return redirect('/postca');. 该错误来自这样一个事实,即重定向始终是GET请求,而您似乎GET没有/postca.

将重定向更改为GET路由或添加Route::put('/postca', 'CAsController@.....');路由。


推荐阅读