RouteCollection.php Laravel中的MethodNotAllowedHttpException

时间:2016-06-18 17:55:33

标签: php html forms laravel routes

我有问题从user1中保存来自user1的姓名和电子邮件。

当我使用带有route::post和功能存储的Laravel中的html表单在 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放入表后,应该重定向到&#34;谢谢你&#34;页面(我有 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'); 
    }

}

3 个答案:

答案 0 :(得分:0)

您的表格基本上是一份注册表格。我建议为终点使用更有意义的名称。邮政路线可以是,

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

现在表单操作可以是,

action="/register"

答案 1 :(得分:0)

我纠正了错字。谢谢!

我也改变了这一点 路线::后( '/', 'User1Controller @店'); 和action =“”。

它有效,现在唯一不好的是我应该重定向到一个页面“谢谢你”不要在完全相同的页面上查看另一个页面。

因为当我重新加载主页时,它在数据库中弄乱了。  我会尝试并告诉它是否有效。

谢谢大家的帮助! :)

答案 2 :(得分:0)

事情已经解决,这有效。我将添加我添加的代码,以便其他人可以找到它!

首先:我没有想到为什么,但是行动=&#34; dir1 / dir3&#34;对我来说没有用!

以下是添加的内容!

&#13;
&#13;
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');
			
	    }
&#13;
&#13;
&#13;