Laravel по-русски

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

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

#1 29.05.2017 11:40:00

Помогите разобраться с route

Начинаю изучать Laravel и сразу же появилась идея сделать так что бы при GET запросе например /user/boris обрабатывался контролер UserController@getBoris

    Route::get('/user/boris', array(
        'as' => 'boris',
        'uses' => 'UserController@getBoris'
    ));
Во так это работает но мне нужно что бы название контролера и его действие бралось из запроса
например:
Route::get('{name}/{action}', array(
        'uses' => ucfirst($name).'Controller@get'.ucfirst($action),
));
Для новичка очень сложно разобраться, мне это нужно что бы добавить возможность дополнять функциональность, добавляя всего лишь контроллер.
Помогите пожалуйста реализовать эту задумку.

Изменено Yunus (29.05.2017 11:41:09)

Не в сети

#2 30.05.2017 15:50:27

Re: Помогите разобраться с route

Как вариант

App\Providers\RouteServiceProvider

$method = 'index';

		if(substr_count($_SERVER['REQUEST_URI'], '/') == 2){
            $method = 'paginate';
            $current_url = explode("/", $_SERVER['REQUEST_URI'])[1];
        }else{
            $current_url = str_replace("/", "", $_SERVER['REQUEST_URI']);
        }

		$page = Page::where('url',$current_url)->first();
		if(!is_null($page))
			$controller_name =  'PageController';

		$product = Product::where('url',$current_url)->first();
		if(!is_null($product))
			$controller_name = 'ProductController';


		if(isset($controller_name)){
			$_ENV['controller_name'] = $controller_name;
			$_ENV['method_name'] = $method;
        }


///////----------------------/////


	if(isset($_ENV['controller_name'])){
		
		Route::get('/{url}', ['uses'=>$_ENV['controller_name'].'@'.$_ENV['method_name']]);
		Route::get('/{url}/{num}', ['uses'=>$_ENV['controller_name'].'@'.$_ENV['method_name']]);
	}

Изменено Alukard19918 (30.05.2017 15:50:45)

Не в сети

#3 30.05.2017 15:53:39

Re: Помогите разобраться с route

Спасибо что откликнулись.

Посоветовали перейти на Yii2 там роуты по умолчанию нацелены на контролеры

Тему можно закрыть

Не в сети

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