2017-03-03 2 views
1

Laravel 5.4に適切なビューにリダイレクトされていない、私は私のルートでexampleController URIに設定し、フォームのaction属性を持つ私の例のページにHTMLフォームを持っています。 blade.phpはなぜコントローラは以下のスニペットでは

<form action="/exampleController" method="POST"> 
    {{csrf_field()}} 
    // rest of form stuff goes here 
</form> 

@if(isset($result)) 
    <table> 
     <td>{{ $result }}</td> 
    </table> 
@endif 

Web.php

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

Controller.php

class PageController extends Controller 
{ 
    public function showform() 
    { 
     return view('htmlPage'); 
    } 
    } 
    public function processData(Request $request) 
    { 
     $result = $request['htmlInputData']; 
     return view('htmlPage')->with(compact('result'); 
    } 
} 

ここからすべて正常に処理され、ページ上にデータが正しく表示されていますが、コントローラが返すURLアドレスがmydomain.com/exampleControllerであり、結果を表示するHTMLページであるmydomain.com/htmlPageではありません操作のまた

、結果のURLアドレスは、(私が期待したものではありません)mydomain.com/exampleControllerで手動でリフレッシュすると、その次のエラーを返すので、:

MethodNotAllowedHttpException in RouteCollection.php line 233: 

誰かが私が逃したものを私を啓発してくださいことはできますか?ありがとうございます。

編集: Route::anyに変更すると、MethodNotAllowedHttpExceptionエラーが消えても、コントローラから返されたURLは正しくありません。

答えて

0

これは、ビュー(view('htmlPage'))を返すために発生します。

このURLにアクセスする場合は、mydomain.com/htmlPageをリダイレクトする必要があります。ビューを読み込まないでください。

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

し、また、あなたのコントローラでこれを行う必要があり、このURLでビューをロードする:

あなたは別のルートを持っている必要がありますこれを正常にロードするために

使用このreturn redirect(url('/htmlPage'))->with(compact('result');

public function loadhtmlPage(Request $request) 
{ 
    return view('htmlPage'); 
} 
+0

コントローラからリターンリダイレクトを実行すると404になります。直接アクセスするのはOKです。 – anagnam

+0

そのあなたのroutes.php – Onix

+0

にルートを持っていないので、そこにフォームページにアクセスするために、別のルートとフォーム処理 – anagnam

関連する問題