2016-08-28 2 views
1


新しいコントローラを作成してLaravel 5を学んでいる間にテストしていましたが、うまく動作するはずです。ここでは、次のとおりです。新しいコントローラ間違いLaravel

私はアプリ/ HTTP /コントローラ/ディレクトリにページ新しいフォルダを作成し、それにContactControllerコントローラを追加しました:
アプリ/ HTTP /コントローラ/ ContactController.php

<?php 

namespace App\Http\Controllers\Pages; 

use App\Http\Controllers\Controller; 

class ContactController extends Controller { 

    public function getIndex() { 
     return 'This is the Contact page.'; 
    } 
} 

そして私はルート/ウェブファイルにルートを作成しました:
不思議ルート/ web.php

Route::controller('contact', 'Pages\ContactController'); 


、私は/接触 URLにアクセスするとき - >http://laravel.devpeaks.com/public/contactを、私が手に:6271 compiled.phpラインで
BadMethodCallException: 方法コントローラはありません存在しない。

答えて

2
  1. nginx/apacheの設定を、ルートディレクトリが/ publicを指すように調整する必要があります。
  2. Route::controllerは、Laravel-5.2以降では使用されなくなりました。 Route::resourceを使用し、getIndexのメソッドの名前をindexにする必要があります。 Laravel-5.1を使用する場合は、最初の点のみを実装してください。
+1

ちょっと不思議なことに、この回答はなぜ私のものよりも優れていますか?私はそれが11分後に投稿され、私が書いたことを正確に繰り返すことを意味する... –

2

Route::controller() was deprecated in 5.2 and was removed in 5.3

次に、php artisan route:listコマンドを実行して、すべてのルートが存在することを確認してください。

また、Laravelプロジェクトルートではなくpublicディレクトリを指すようにWebサーバー設定を修正する必要があります。これを実行した後、domain.com/contactのような通常のURLを使用します。

関連する問題