【问题标题】:Method not alowed - Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException The POST method is not supported方法不被允许 - Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException 不支持 POST 方法
【发布时间】:2019-12-01 21:15:50
【问题描述】:

我正在尝试在 Laravel 中开设一门课程,并尝试设置一个简单的 CRUD 方法,但我卡在了 Create 上。我在 Laravel 中有一个错误,我不明白如何解决它,我试图清除路由缓存但不起作用。我看了一些关于这个错误的答案,但我不确定它们是否匹配,因为我在 web 文件中使用 post 方法。 Snippet

控制器

namespace App\Http\Controllers;

use App\Todo;

use Illuminate\Http\Request;

class TodosControler extends Controller
{





public function index() 
{
    return view('todos.index')->with('todos', Todo::all());
}

//za pojedine 
public function show($todoId)
{
    //dd($todoId); //diedump isto kao die u PHPu

     // $todo = Todo::find($todoId);  onda ovo kad slozimo samo stavimo u return
     return view('todos.show')->with('todo', Todo::find($todoId));
}

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

public function store()
{
  $data = request()->all();
  $todo = new Todo();
  $todo->name = $data['name'];
  $todo->description = $data['description'];
  $todo->completed = false;
  $todo->save();
  return redirect('/todos');
}


}

网页文件

use App\Http\Controllers\AboutController;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Route::get('todos' , 'TodosControler@index');

Route::get('todos/{todo}' , 'TodosControler@show');

Route::get('new-todos' , 'TodosControler@create');

Route::post('store-todos' , 'TodosControler@store');

表格

    <form action="/store-todos" method="POST">
             @csrf
      <div class="form-group">
           <input type="text" class="form-control" name="name" placeholder="Name">
      </div>

      <div class="form-group">
            <textarea name="description" cols="5" rows="5" class="form-control" placeholder="description"></textarea>
      </div>

      <div class="form-group text-center">
             <button type="submit" class="btn btn-success">Create todo</button>
      </div>


  </form>

【问题讨论】:

  • php artisan cache:clearphp artisan route:cachephp artisan optimize你试过了吗?
  • 你运行命令composer install了吗?

标签: php laravel


【解决方案1】:

我认为这是错误Route::get('new-todos' , 'TodosControler@create')。 也许你需要Route::post('new-todos' , 'TodosControler@create')

希望对你有所帮助。

【讨论】:

  • 显然,当我从一开始再次测试它并且这个错误不是问题时,我做了撤消并将其改回。然后它就像什么都没发生一样工作。我认为这是一个缓存问题。
猜你喜欢
  • 2020-02-08
  • 2020-02-04
  • 2020-08-10
  • 2018-09-06
  • 2021-02-24
  • 2020-06-22
  • 2014-11-20
  • 2019-07-01
  • 2019-01-06
相关资源
最近更新 更多