2016-03-24 21 views
1

この問題を抱えている人がたくさんいますが、解決策はいくつかありますが、私は解決できませんでした。コードがそこにあります。私がlocalhostに行く:8000 /記事私は私の記事を得る。問題はない。私は/article/createに行くことができます。しかしを提出すると、RouteCollection.php行219エラーでMethodNotAllowedHttpExceptionが発生します。私がの記事/ 2に行くと、私はRouteCollection.php行219のエラーでMethodNotAllowedHttpExceptionを取得します。RouteCollection.php行のMethodNotAllowedHttpExceptionの一般的なエラー

<?php 

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

Route::get('article','[email protected]'); 
Route::get('article/create','[email protected]'); 
Route::get('article/{id}','[email protected]'); 

Route::post('article','[email protected]'); 
routes.phpの

ArticleController.php

<?php 

namespace App\Http\Controllers; 

use App\Article; 
//use Illuminate\Http\Request; 
use Request; 

use App\Http\Requests; 

class ArticleController extends Controller 
{ 
    public function index(){ 
     $articles = Article::all(); 
     return view('articles.index',compact('articles')); 
    } 
    public function show($id){ 
     $article = Article::findOrFail($id); 
     return view('articles.show',compact('article')); 
    } 

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

    public function store(){ 
     $input = Request::all(); 
     return $input; 
    } 
} 

create.blade.php

@extends('app') 


@section('content') 
    <h1>Write a New Article</h1> 

    <br/> 

     {!! Form::open(['url' => 'article']) !!} 
     <div class="form-group"> 
      {!!Form::label('title','Title:')!!} 
      {!! Form::text('title',null,['class'=>'form-control']) !!} 
     </div> 
     <div class="form-group"> 
      {!! Form::label('body','Body:') !!} 
      {!! Form::textarea('body',null,['class' => 'form-control'])!!} 
     </div> 
     <div class="form-group"> 
      {!!Form::submit('Add Article',['class'=> 'btn btn-primary form-control']) !!} 
     </div> 
     {!! Form::close() !!} 

@stop 

index.blade.php

@extends('app') 

@section('content') 
    <h1>Articles</h1> 
    <br/> 
    <?php foreach ($articles as $article): ?> 
     <article> 
      <h2> 
       <a href="/article/{{$article->id}}">{{$article->title}}</a> 
      </h2> 
      <div class="body">{{$article->body}}</div> 
     </article> 
    <?php endforeach ?> 
@stop 

ここ

EDIT 1 php artisan route:list出力:

GET|HEAD | about | App\Http\Controllers\[email protected]  
GET|HEAD | article | App\Http\Controllers\[email protected] 
GET|HEAD | article/create | App\Http\Controllers\[email protected] 
GET|HEAD | contact | App\Http\Controllers\[email protected] 

EDIT 2とphp artisan route:clear明確あなたのルートリストとSOLUTION

とは、あなたのすべてのルートを取得しますphp artisan route:listください。それは私のためにうまくいった。

+0

投稿リクエストをサポートしていないルートをリクエストしています。 Laravelでは、ルートでのリクエスト方法を指定できます。また、リクエストを必要とするページに投稿をリクエストさせないようにします。 MethodNotFound例外をスローします。 –

答えて

1

create.blade.phpでこれを変更しよう:

{!! Form::open(['url' => 'article']) !!} 

これに:

{!! Form::open(array('route' => 'article.store')) !!} 

UPDATE

実行php artisan route:clearルートキャッシュをクリアします。

+0

私はそれが原因だとは思わない。私は覚えていないが、これはフォームファサードを使用した後に始まったと思う。 Route [article.store]は定義されていない。 (表示:C:¥Users¥oguna¥Desktop¥Laravel Projects¥project¥resources¥views¥articles¥create.blade.php) –

+0

フォームが機能していて、フォームを送信するときにエラーが発生すると述べました。 'php artisan route:list'を実行し、' articles.store'ルートのすべての情報を投稿してください。 –

+0

php artisan routeで編集:listコマンド –