Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 11.05.2015 16:37:24

Taurus24

Путь к контроллерам

Всем добрый день!

Laravel только начал изучать. Возник следующий вопрос:
Задается роут

Route::get('/', 'WelcomeController@index');

Выполняется соответственно класс WelcomeController, который лежит в app/Http/Controllers

Чтобы выполнить выполнить метод класса Welcome2Controller, который лежит в app/path_1/path_2, нужен роут

Route::get('/', '\app\path_1\path_2\Welcome2Controller@index');

так вот, вопрос в следующем. можно ли как-то изменить дефолтный путь до контроллеров? чтобы он был не app/Http/Controllers

Заранее спасибо!

#2 11.05.2015 18:05:36

Re: Путь к контроллерам

Привет это задается в App\Providers\RouteServiceProvider

Не в сети

#3 11.05.2015 19:19:10

Taurus24

Re: Путь к контроллерам

Спасибо за ответ. Но вопрос не решился(
Вот, что в App\Providers\RouteServiceProvider.php

<?php namespace App\Providers;

use Illuminate\Routing\Router;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;

class RouteServiceProvider extends ServiceProvider {

	/**
	 * This namespace is applied to the controller routes in your routes file.
	 *
	 * In addition, it is set as the URL generator's root namespace.
	 *
	 * @var string
	 */
	protected $namespace = 'App\Http\Controllers';

	/**
	 * Define your route model bindings, pattern filters, etc.
	 *
	 * @param  \Illuminate\Routing\Router  $router
	 * @return void
	 */
	public function boot(Router $router)
	{
		parent::boot($router);

		//
	}

	/**
	 * Define the routes for the application.
	 *
	 * @param  \Illuminate\Routing\Router  $router
	 * @return void
	 */
	public function map(Router $router)
	{
		$router->group(['namespace' => $this->namespace], function($router)
		{
			require app_path('Http/routes.php');
		});
	}

}

меняю protected $namespace = 'App\Http\Controllers'; на protected $namespace = 'App\Path_1';, а все равно роуты ведут на 'App\Http\Controllers.
Может я что-то забыл сделать после изменения protected $namespace? Может еще нужно где-то менять?

#4 12.05.2015 13:14:18

Re: Путь к контроллерам

честно не понимаю за чем оно надо(перенос всех контроллеров в другую папку)? чем Http\Controllers не устроил?

но если я логику верно понял то необходимо перенести контроллеры в другую папку или папки...

как сделал я - у меня есть сам сайт и его контроллеры лежат в Http\Controllers
однако есть и админка и для нее я сделал отдельную папку Http\Controllers\AdminControllers

так выглядит routes.php для админ
Route::get('/admin', ['uses' => 'AdminControllers\AdminController@index']);

что бы контроллер работал надо изменить namespace в самом контроллере(например в том же AdminController.php)
<?php namespace App\Http\Controllers\AdminControllers;

то есть для всех контроллеров в папке Http\Controllers\AdminControllers прописать <?php namespace App\Http\Controllers\AdminControllers;

более ничего не нужно править ни каких сервис провайдеров

Изменено fagtr (12.05.2015 13:15:24)


в разработке

Не в сети

Подвал раздела