Я строй международного сайта, поэтому мне удалось URL, похожий /{language}/{other_stuff}
поблагодарить некоторые манипуляции в RouteServiceProvider
Namespaced маршрутов не работают в Laravel 5
/**
* 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_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\[email protected]', 'Brands') !!}
поколение отлично работает, когда я иду в /en/admin
, что означает Admin\[email protected]
обнаружен этот пакет, но при нажатии на нее
Sorry, the page you are looking for could not be found.
I проверил некоторые вещи, и когда я просто установил маршрут за пределами group()
, он отлично работает.
Route::controller('admin/brands', 'Admin\BrandsController');
Что мне здесь не хватает? Разве класс HTML и система маршрутизации не согласуются друг с другом? Есть ли какая-то ошибка, которую я сделал? Может, проблема?
EDIT: Я открыл an issue for this problem on GitHub
В вашем пространстве маршрутов '' '' 'Route :: group''' в поле' '' 'Route :: group''' следует заменить 'Admin' на 'App \ Http \ Controllers \ Admin' –
' App класса \ Http \ Controllers \ App \ Http \ Контроллеры \ Admin \ DashboardController не существует. К сожалению, это не сработает. – Laurent