无法在Laravel 5中调用Controller进入路由

时间:2019-04-11 06:06:54

标签: laravel laravel-5

要在制作自定义模块时将控制器调用到我的路由中。我将自定义模块放入App文件夹,将模块文件夹(如App / Modules / OEM /

)放入

我的route.php(进入App / Modules / OEM / routes.php)

Route::group(['prefix' => '', 'namespace' => 'App\Modules\OEM\Controllers'], function () {

    Route::get('/welcome', 'OemControllers@welcome');

});

我的控制器文件:(App / Modules / OEM / Controller / OemControllers.php)

<?php namespace App\Modules\OEM\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Modules\OEM\Models\OemModel;



class OemControllers extends Controller{


    public function __construct (OemModel $OemModel)
    {
        $this->middleware('auth');
        $this->OemModel = $OemModel;

    }

    public function welcome(){
        return view('OEM::welcome');
    }
}

我的模型文件:(App / Modules / OEM / Models / OemModel.php)

<?php
namespace App\Modules\OEM\Models;
use Illuminate\Database\Eloquent\Model;

class OemModel extends Model{


    public static function get_url_list() {
       return "this is model of OEM";
    }
}

我的问题是,当我点击URL localhost:8000 / welcome时,它将重定向到home,因此无法从我的路线调用控制器,也无法将模型调用到控制器中。

请帮忙。 谢谢你。

2 个答案:

答案 0 :(得分:0)

您正在尝试错误的命名空间分配,您想要在组上使用命名空间,而不是将控制器放在App \ Http \ Controllers文件夹中,因为它的默认设置是从Controllers文件夹访问它们,或者分别为每个路由提供完整的命名空间。

//for using namespace on route group

Route::namespace('Admin')->group(function () {
// Controllers Within The "App\Http\Controllers\Admin" Namespace
});

//or provide seprately complete name space for each route

 Route::get('/welcome', 'App\Modules\OEM\Controllers\OemControllers@welcome');

答案 1 :(得分:0)

您必须在web.php这样的模块中调用控制器:

Route::get('/welcome', '\App\Modules\OEM\Controllers\OemControllers@welcome');