Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 名称空间路由在Laravel 5中不起作用_Php_Laravel_Routes_Laravel 5 - Fatal编程技术网

Php 名称空间路由在Laravel 5中不起作用

Php 名称空间路由在Laravel 5中不起作用,php,laravel,routes,laravel-5,Php,Laravel,Routes,Laravel 5,我正在建立一个国际网站,因此我设法使URL看起来像/{language}/{other_stuff},这要感谢RouteServiceProvider中的一些操作 /** * Define the routes for the application. * * @param \Illuminate\Routing\Router $router * @return void */ public function map(Router $router, Request $request

我正在建立一个国际网站,因此我设法使URL看起来像
/{language}/{other_stuff}
,这要感谢
RouteServiceProvider中的一些操作

/**
 * Define the routes for the application.
 *
 * @param  \Illuminate\Routing\Router  $router
 * @return void
 */
public function map(Router $router, Request $request)
{

    $locale = $request->segment(1);
    $this->app->setLocale($locale);

    /**
     * Internationalization routing system
     */
    $router->group(['namespace' => $this->namespace, 'prefix' => $locale], function($router) use ($locale) {

        if ($locale == 'en') require app_path('Http/routes_en.php');
        elseif ($locale == 'el') require app_path('Http/routes_el.php');

    });

}
工作起来很有魅力。每种语言都有自己的路由文件,这是一种选择

假设我们转到
/en/
,您是一名管理员,我在
Http/route\u en.php
中创建了另一个名称空间,以关注管理部分:

Route::group(['namespace' => 'Admin', 'prefix' => 'admin'], function() {

  Route::controller('', 'DashboardController');

  Route::controller('brands', 'BrandsController');
  Route::controller('contents', 'ContentsController');
  Route::controller('downloads', 'DownloadsController');
  Route::controller('news', 'NewsController');
  Route::controller('products', 'ProductsController');
  Route::controller('settings', 'SettingsController');
  Route::controller('users', 'UsersController');

});
所以现在我应该可以很容易地访问一些部分,比如
/en/admin/brands
,但它失败了。由于HTML类,我动态生成了所有链接

{!! HTML::linkAction('Admin\BrandsController@getIndex', 'Brands') !!}
当我转到
/en/admin
这意味着
管理时,生成工作正常\BrandsController@getIndex
被此软件包检测到,但当您单击它时

Sorry, the page you are looking for could not be found.
我测试了一些东西,只要在
group()
外部设置路由,就可以了

Route::controller('admin/brands', 'Admin\BrandsController');
我在这里错过了什么?HTML类和路由系统不应该彼此一致吗?我犯了什么错误吗?也许有问题?


编辑:我打开了

所以没有人试图帮助我

几天后,一个问题和许多测试让我自己明白了这个问题:您必须将
仪表板控制器
路由放在末尾,否则路由系统将首先处理它,而忽略其他路由

  /**
   * Admin
   */
  Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => 'is.admin'], function() {

    Route::controller('news', 'NewsController');
    Route::controller('brands', 'BrandsController');
    Route::controller('products', 'ProductsController');
    Route::controller('users', 'UsersController');
    Route::controller('downloads', 'DownloadsController');
    Route::controller('settings', 'SettingsController');
    Route::controller('contents', 'ContentsController');

    Route::controller('', 'DashboardController');

  });
注意:在路由列表中,甚至在HTML/Form包中,一切看起来都正常,但事实并非如此。


我把它放在这里是为了任何有类似问题的人。

所以没有人试图帮助我

几天后,一个问题和许多测试让我自己明白了这个问题:您必须将
仪表板控制器
路由放在末尾,否则路由系统将首先处理它,而忽略其他路由

  /**
   * Admin
   */
  Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => 'is.admin'], function() {

    Route::controller('news', 'NewsController');
    Route::controller('brands', 'BrandsController');
    Route::controller('products', 'ProductsController');
    Route::controller('users', 'UsersController');
    Route::controller('downloads', 'DownloadsController');
    Route::controller('settings', 'SettingsController');
    Route::controller('contents', 'ContentsController');

    Route::controller('', 'DashboardController');

  });
注意:在路由列表中,甚至在HTML/Form包中,一切看起来都正常,但事实并非如此。


我把它放在这里是为了任何有类似问题的人。

在你的routes\u en.php中的
Route::group
名称空间中,尝试将“Admin”替换为“App\Http\Controllers\Admin”
Class-App\Http\Controllers\App\Http\Controllers\Admin\DashboardController不存在
遗憾的是,它在你的routes\u en.php中不起作用
Route::group
命名空间试图将“Admin”替换为“App\Http\Controllers\Admin”
Class-App\Http\Controllers\App\Http\Controllers\Admin\DashboardController不存在
很遗憾,它也无法以这种方式工作