我有 Laravel 5.2.45 应用程序。 我有这样的 Controller 结构:
App
Http
Controllers
Admin
AdminController.php
在 AdminController.php 里面我有
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\Requests;
class AdminController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
$this->middleware('is.admin');
}
public function index()
{
return view('admin.home');
}
}
我有这样的 View 文件夹结构:
views
admin
home.blade.php
在我的 routes.php 里面有
Route::get('/admin/home', 'Admin\AdminController@index');
所以当我输入 .../admin/home 浏览器时,我试图得到它,在 admin 文件夹中显示 home.blade.php。
我的 routes.php:
Route::auth();
Route::get('/', 'FrontController@index');
Route::get('/home', 'FrontController@index');
Route::get('/add_user', 'FrontController@user');
Route::group(['prefix', 'admin', 'namespace' => 'Admin'], function() {
Route::get('home', 'AdminController@index');
});
最佳答案
您的路由定义 中缺少前缀。将其更正为如下所示:
<?php
Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function() {
Route::get('/home', 'AdminController@index');
});
Now, try base_url/admin/home in your browser and it should work.
关于php - 在子文件夹中定义 Laravel 5 路由并通过 Controller 显示它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39364513/