使用现在从4.2迁移的Laravel 5,将laravel 5安装在子文件夹“ abc”中,我是否必须为每条路线编写abc /仓库?以前是/仓库。我想使用所有现有的路由,例如abc子目录下的/ warehouse。
我使用端口81在localhost xampp上。http://localhost:81/warehouse
这里的任何人都有快速解决方案
答案 0 :(得分:1)
您在定义路线时使用prefix
:
Route::prefix('abc')->group(...)
Route::prefix('abc')->group(function () {
Route::get('warehouse', function () {
// Matches The "/abc/warehouse" URL
});
});
理想情况下,您应该在RouteServiceProvider
Route::middleware('web')
->prefix('abc')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
通过这种方式,路由文件中的所有内容都将添加前缀,并且您不需要额外的分组换行。
这是5.0文档中的示例:
Route::group(['prefix' => 'admin'], function() {
Route::get('users', function() {
// Matches The "/admin/users" URL
});
});
答案 1 :(得分:0)
您可以做的就是在RouteServiceProvider
函数的mapWebRoutes
中添加一行
public function mapWebRoutes()
{
//default
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
//subfolder
Route::middleware('web')
->prefix('abc')
->namespace($this->namespace)
->group(base_path('routes/abc.php'));
}
然后在routes/abc.php
内创建一个文件,并将所有路由复制粘贴到其中
路由前缀https://laravel.com/docs/5.6/routing#route-group-prefixes
对于laravel 5.0,您必须包装在Route::group
Route::group(['prefix' => 'abc', 'namespace' => 'Auth'], function(){
//define all your routes here
Route::post('login', 'AuthController@login');
});
命名空间:在这里,我在命名空间中定义了Auth
,这意味着我所有的控制器,例如AuthController
文件都应位于app/Http/Controllers/Auth
文件夹中。
Laravel路线5.0 https://laravel.com/docs/5.0/routing#route-group-prefixes
对于laravel 5.0命名空间结构,请检查此https://laravel.com/docs/5.0/structure