2016-08-28 4 views
1


Laravel 5の学習中に次のような問題が発生しました。新しいコントローラの作成Laravel

私はフォルダにContactControllerという名前の新しいコントローラを作成しました:

アプリ/ HTTP /コントローラ/ページ/ ContactController.phpを、私はそれで次のコードがあります。

<?php 

namespace App\Http\Controllers\Pages; 

use App\Http\Controllers\Controller; 

class ContactController extends Controller { 

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

    public function getMyDetails() { 
     return 'This is the My Details page.'; 
    } 
} 

と私もウェブルートに次のコードを追加:
ルート/ web.php

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


私が理解するものによると、それは自動的に私にメッセージが表示されるはずです「これは私の詳細ページです。」 URLアドレス:http://laravel.devpeaks.com/public/contact/my-detailsを開いたとき。代わりにエラーが表示されます。
BadMethodCallException in compiled.php 6271: メソッドコントローラが存在しません。

答えて

2

Resource controllersそのようには機能しません。 、indexshowcreatestoreeditupdatedelete

をあなたはmy-detailsルートを追加したい場合は、routes.phpにこれを追加します:Route::resourceはあなたのために7つのCRUDルートを作成します

Route::get('contact/my-details', 'Pages\[email protected]'); 
+0

さて、今あなたがすべき勝つ。 :) –

+0

:: getを使ってすべての単一ルートを手動で作成するのを避けるために、私はLaravelが一度入力することでルートとして他のすべてのメソッドを自動的に作成できると考えましたか?これは私が今日チュートリアルから理解したものです。本当ですか? :)メソッド名から "getMyDetails"を取得し、URL "/ my-details"として解釈します。 –

+2

いいえ、 'controller()'が廃止され削除されなければ、それは不可能です。かなり古いチュートリアルを読んでいるようです。 –

関連する問題