0

こんにちは、この出力方法は[showpath]私はトピックcontrollers.Iに初めてlaravelを勉強

まずミドルウェア、 第二ミドルウェア、 を取得する必要があります[UserControllerで\ FirstProject \のHttp \コントローラ]に存在しません。 URI:UserControllerで/パス、 URL:http://localhost:8000/usercontroller/path、 方法:

UserControler.php

マイ以下のコードであるGET 210

namespace FirstProject\Http\Controllers; 

use Illuminate\Http\Request; 
use FirstProject\Http\Requests; 
use FirstProject\Http\Controllers\Controller; 

class UserController extends Controller 
{ 
    public function _construct(){ 
     $this->middleware('auth'); 
    }  
} 

FirstMiddleware.php

namespace FirstProject\Http\Middleware; 

use Closure; 

class FirstMiddleware 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     echo "<br>First Middleware"; 
     return $next($request); 
    } 
} 

SecondMiddleware.php

namespace FirstProject\Http\Middleware; 

use Closure; 

class SecondMiddleware 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     echo "<br>Second Middleware"; 
     return $next($request); 
    } 
} 

SecondUserController.php

namespace FirstProject\Http\Controllers; 

use Illuminate\Http\Request; 
use FirstProject\Http\Requests; 
use FirstProject\Http\Controllers\Controller; 

class SecondUserController extends Controller 
{ 
    public function __construct(){ 
     $this->middleware('Second'); 
    } 
    public function showPath(Request $request){ 
     $uri = $request->path(); 
     echo '<br>URI: '.$uri; 

     $url = $request->url(); 
     echo '<br>'; 

     echo 'URL: '.$url; 
     $method = $request->method(); 
     echo '<br>'; 

     echo 'Method: '.$method; 
    } 
} 

ルート/ web.php

Route::get('/usercontroller/path',[ 
    'middleware' => 'First', 
    'uses' => '[email protected]' 
]); 

しかし、イムはhttp://localhost:8000/usercontroller/path

を実行している私は BadMethodCallException 方法は、[showPath]上に存在しないばかりM [FirstProject \のHttp \コントローラ\ UserControllerで]。

何が問題ですか?

答えて

1

これは明らかですね。この方法は、SecondUserControllerで定義されていなくUserControllerにとルートには、あなたは

+0

はい'[email protected]'を使用しますが、それはコントローラUserControllerでの作成に語ったが、それはそれはすでに存在して来たチュートリアルのように私は別のコントローラ名を作成しなければならなかった理由は、THTです。 –

+0

他のヘルプ? –

+1

コントローラ名を変更したときは、 'web.php'ファイルのコントローラ名も変更する必要があります。このファイルを参照すると、 'UserController'の既存の' showPath'メソッドが参照されなくなり、エラーが発生します。 –

関連する問題