2016-06-18 2 views
0

У меня проблема с сохранением имени и электронной почты от user1 в таблице user1s, которую я создал.МетодNotAllowedHttpException в RouteCollection.php Laravel

Когда я ввожу их в textareas используя html-форму в Laravel с route::post и магазин функций не работает. Когда я ввожу текст и нажмите кнопку Зарегистрировать выводит следующее сообщение об ошибке:

MethodNotAllowedHttpException in RouteCollection.php line

Вы увидите, что я использую форму HTML и что я пытался добавить <input ....> в мою форму.


Вот мои файлы:

route.php

<?php 

Route::get('/','[email protected]'); 
Route::post('/','[email protected]'); 

Route::get('about','[email protected]'); 

welcome.blade.php

Я не уверен в action. После ввода user1 инфа в таблицу, она должна быть перенаправлен на «Спасибо» страницы (у меня есть 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'); 
    } 

} 
+0

'acction = "/ user1"'? – lagbox

+0

Я не уверен, что мне следует поместить в качестве действия, я жестко сказал, что это будет означать, что я буду видеть страницу '/ user1' после того, как магазин меток закончен, но я в замешательстве. – moonlight

+0

Я изменил действие = "". – moonlight

ответ

0

Ваша форма в основном регистрационную форму. Я бы рекомендовал использовать более значимое имя для конечной точки. Сообщение маршрут может быть что-то подобное,

Route::post('/register','[email protected]'); 

Теперь форма действие может быть,

action="/register" 
+0

что такое 'acction'? – lagbox

+0

Исправлена ​​опечатка (действие на действие). Я имею в виду атрибут действия тега формы HTML. –

+0

Я исправил опечатку. Спасибо! Я также изменил это Route :: post ('/', 'User1Controller @ store'); – moonlight

0

Я исправил typo.Thanks!

Я также изменил это Route :: post ('/', 'User1Controller @ store'); и action = "".

Это работает, единственное, что прямо сейчас, что не хорошо, - это то, что я должен перенаправить на страницу «Спасибо», чтобы не переходить на другую страницу на той же странице.

Потому что он создает беспорядок в базе данных при перезагрузке домашней страницы. Я попробую и скажу, работает ли это.

Спасибо людям за помощь! :)

0

Вещи решены, это работает. Я добавлю код, который я добавил, чтобы другой мог его найти!

Firs of all: I не понял почему, но action = "dir1/dir3" для меня не помогло!

Это дополнительные вещи!

routes.php 
 

 
Route::get('thankyou','[email protected]'); 
 

 

 
***PageController.php*** 
 

 

 
\t public function thankyou() 
 
\t { 
 
\t \t \t return view('thankyou'); 
 
\t } 
 

 
*****User1Controller.php***** 
 

 
    public function store(Request $request) 
 
\t  { 
 
\t  \t 
 
\t  \t $user= new User1; 
 
\t  \t $user->name = $request->name; 
 
\t  \t $user->email = $request->email; 
 
\t  \t $user->save(); 
 

 
\t  \t return redirect('/thankyou'); 
 
\t \t \t 
 
\t  }

Смежные вопросы