[FirstProject \ Http \ Controllers \ UserController]上不存在方法[showpath]

问题描述 投票:0回答:1

你好我第一次在主题控制器上学习laravel。我需要得到这个输出

第一中间件,第二中间件,URI:usercontroller / path,URL:http://localhost:8000/usercontroller/path,方法:GET

我的以下代码是:

UserControler.php

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' => 'UserController@showPath'
]);

但当我运行http://localhost:8000/usercontroller/path

我得到BadMethodCallException方法[showPath]在[FirstProject \ Http \ Controllers \ UserController]上不存在。

问题是什么?

laravel laravel-5 laravel-routing controllers laravel-middleware
1个回答
1
投票

很明显,不是吗?此方法在SecondUserController中定义,但在UserController和您使用'UserController@showPath'的路线中没有定义

© www.soinside.com 2019 - 2024. All rights reserved.