簡體   English   中英

RouteCollection.php Laravel中的MethodNotAllowedHttpException

[英]MethodNotAllowedHttpException in RouteCollection.php Laravel

我在將user1的名稱和電子郵件保存到我創建的表user1s中時遇到問題。

當我在Laravel中使用html形式的route::post和function存儲在textareas中輸入它們時,它不起作用。 當我輸入文字並點擊“注冊”按鈕時,將輸出以下錯誤:

RouteCollection.php行中的MethodNotAllowedHttpException

您將看到我使用HTML表單,並且嘗試將<input ....>添加到我的表單中。


這是我的文件:

route.php

<?php

Route::get('/','PageController@home');
Route::post('/','User1Controller@store');

Route::get('about','PageController@about');

welcome.blade.php

我不確定該action 將user1 inf放入表后,應將其重定向到“謝謝”頁面 (我有Thankyou.blade.php ),也許就是問題所在

<form  method="POST" action=""> 
                    <input name="_token" type="hidden" value="{{ csrf_token() }}"/>

                <ul class="list-group" >


                    <li  >
                    NAme
                    <div class="form-group" title="email" >
                        <textarea name="name" class="form-control" >

                        </textarea>
                    </div>
                    </li  >

                    <li>Email
                    <div class="form-group" > 
                        <textarea name="email"  class="form-control" >

                        </textarea>
                    </div>
                    </li>

                    <li  >
                        <div class="form-group" >
                        <button class="btn btn-primary">Register</button>
                        </div>
                    </li>

                </ul>
            </form>

為user1遷移

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateNotesTable extends Migration
{

    public function up()
    {
        Schema::create('notes', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('card_id')->unsigned();
            $table->text('body');            
            $table->timestamps();
        });
    }


    public function down()
    {
        Schema::drop('notes');
    }
}

user1controller.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\User1;

class User1Controller extends Controller
{

    public function store(Request $request)
        {

            $user= new User1;
            $user->name = $request->name;
            $user->email =  $request->email;
            $user->save();

            return view('thankyou');

        }

}

pagecontroller.php

<?php

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

use App\User1;

class PageController extends Controller
{
    public function home()
    {
            $user1s= User1::all();
    return view('welcome',compact('user1s'));
    }

    public function about()
    {
            return view('pages.about'); 
    }

}

您的表格基本上是注冊表格。 我建議為終點使用更有意義的名稱。 發布路線可以是這樣的,

Route::post('/register','User1Controller@store');

現在可以執行表單操作了

action="/register"

我糾正了錯字。謝謝!

我也更改了此Route :: post('/','User1Controller @ store'); 和action =“”。

它有效,唯一不好的是我應該重定向到頁面“謝謝”,而不要轉到完全相同頁面上的另一個視圖。

因為當我重新加載主頁時,它會使數據庫混亂。 我會嘗試一下,然后告訴它是否有效。

謝謝大家的幫助! :)

事情解決了,行得通。 我將添加已添加的代碼,以便其他人可以找到它!

所有人:我還沒弄清楚為什么,但是對我來說action =“ dir1 / dir3”無效!

這是添加的東西!

 routes.php Route::get('thankyou','PageController@thankyou'); ***PageController.php*** public function thankyou() { return view('thankyou'); } *****User1Controller.php***** public function store(Request $request) { $user= new User1; $user->name = $request->name; $user->email = $request->email; $user->save(); return redirect('/thankyou'); } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM