2016-05-04 26 views
-1

"ページが見つかりません"または何かメッセージを出す方法を教えてもらえますか?たとえば、私のプロジェクトに存在しない標準エラーページ(Woops、何かが間違っていて、[bla.bla]が見つかりませんでした)が表示されず、私の指定したページを表示しないブラウザにリンクを書きます。エラーメッセージ - Laravel 5.2

<?php 



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

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

Route::get('napravisiadmin', '[email protected]'); 
Route::group(['middleware' => ['web']], function() { 

    Route::group(['middleware' => ['guest'] 
    ], function() { 
     Route::get('login', '[email protected]'); 
     Route::post('login', '[email protected]'); 
    }); 
    Route::get('logout', '[email protected]'); 


    //Admin 
    Route::group(['middleware' => ['auth', 'auth.admin'] 
    ], function() { 
     Route::group([ 
      'prefix' => 'admin', 
      'namespace' => 'Admin' 
     ], function() { 
      Route::controller('student', 'StudentsController'); 
      Route::controller('profile', 'ProfilesController'); 
      Route::controller('class', 'ClassesController'); 
      Route::controller('subjects', 'SubjectsController'); 
      Route::controller('teacher', 'TeachersController'); 
      Route::controller('marktype', 'MarkTypeController'); 
      Route::controller('rules', 'RuleController'); 
      Route::get('{slug?}', '[email protected]'); 
     }); 
    }); 
    //Admin 


    //Student 
    Route::group([ 
     'middleware' => ['auth', 'auth.student'], 
     'prefix' => 'stu', 
     'namespace' => 'Stu' 
    ], function() { 
     Route::get('{slug?}', '[email protected]'); 
    }); 
    //Student 


    //Teacher 
    Route::group([ 
     'middleware' => ['auth', 'auth.teacher'], 
     'prefix' => 'educator', 
     'namespace' => 'Educator' 
    ], function() { 

     Route::get('edit/{id}', '[email protected]'); 
     Route::post('edit/{id}', '[email protected]'); 
     Route::get('account', '[email protected]'); 
     Route::get('class-subject', '[email protected]'); 
     Route::get('add-mark', '[email protected]'); 
     Route::post('mark', '[email protected]'); 
     Route::get('added', '[email protected]'); 
     Route::get('statistics', '[email protected]'); 
     Route::get('personalemails', '[email protected]'); 
     Route::post('personalemails', '[email protected]'); 

    }); 
    //Teacher 
}); 



Route::get('{slug?}', '[email protected]'); 
+1

エラーを処理する方法の詳細については[こちら](http://stackoverflow.com/questions/34250180/laravel-5-how-to-handle-error-messages/34250468#34250468)をご覧ください – Moppo

答えて

1

create custom error 404 pageです。誰かがブラウザに間違ったURLを入力すると、そのページが表示されます。問題はここにある

は私が推測する

abort(404); 

更新:あなたはこの3使用している

Route::get('{slug?}', '[email protected]'); 

また、あなたがこのページに手動でユーザーをリダイレクトすることができます回、それらのすべてを削除しようとします。 Laravelはどのルートが見つからないとき

事がある、それは{slug}を取り、PageControllerに渡し、あなたがhttp://example.com/sometextを入力するとき、あなたはslug = sometextPageControllerに転送されます。

削除しない場合は、コントローラー内にslugがあるかどうかを確認してください。そうでない場合は、ただabort(404);とユーザーはエラーページに転送されます。

また、5.2.27以上の場合はroutes.phpからwebミドルウェアを削除してください(自動的に適用されるため、手動で適用するとエラーや文字列の動作が発生する可能性があります)。

+0

私はそのビューを作成しますが、間違ったURLを入力すると、作成したビューが表示されません。 :( –

+0

'resources/views/errors/404.blade.php'ビューを追加しましたか?入力したURLと正確に何を表示しようとしていますか? –

+0

うん、 –

3

「ページが見つかりません」404エラーの場合、ビューをresources/views/errors/404.blade.phpに作成し、404エラーが発生したときに表示されます。ドキュメントから

カスタムHTTPエラーページ

Laravelは様々なHTTP ステータスコードについてカスタムエラーページを返すことが容易になります。たとえば、 404 HTTPステータスコードのエラーページをカスタマイズする場合は、resources/views/errors/404.blade.phpを作成します。 このファイルは、 アプリケーションによって生成されたすべての404エラーで配信されます。

このディレクトリ内のビューの名前は、対応するHTTP のステータスコードと一致する必要があります。

https://laravel.com/docs/5.2/errors#custom-http-error-pages

あなたが望んでいた場合は常に、あなたが例えば

https://laravel.com/docs/5.2/errors#the-exception-handler

render()方法をカスタマイズすることで希望の方法を例外ハンドラを利用して、例外を処理することにより、さらに一歩を行くことができますファイルが見つかりませんエラーを処理するには、Exceptions\Handler.php

public function render($request, Exception $e) 
{ 

    if ($e instanceof \Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException) { 
     return response()->view('errors/exceptions/file-not-found', [], 500); 
    } 

    return parent::render($request, $e); 
}