Вызов маршрутов из представления в CodeIgniter - PullRequest
0 голосов
/ 18 января 2019

Я бы хотел избежать жесткого кодирования URL в представлениях.

Пример:

//view
echo form_open( base_url( 'users/add' ) );...

//routes
$route['users/add']['post'] = 'UserController/insert';

Таким образом, каждый раз, когда я обновляю URL в маршрутах, мне нужно перейти к просмотру, найти форму и вручную обновить URL в представлении, что может быть очень сложным.

В laravel вы можете назвать маршрут так:

//routes.php
$route->post('users/add', 'UserController@insert')->name('insertUser');

и вызывать его прямо из представления с помощью вспомогательной функции

//view
form_open( routes('insertUser') );...

Таким образом, URL-адрес в представлении обновляется автоматически и избавляет вас от необходимости делать это вручную.

Мне интересно, есть ли что-то подобное в CodeIgniter.

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

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Этого можно достичь, предварительно установив элемент конфигурации маршрутизатора в файле конфигурации (файл по умолчанию находится в application / config / config.php ), например:

$config['routes']['insertUser'] = 'users/add';

, затем предоставьте приведенную выше конфигурацию в элемент стандартных маршрутов на rout.php ,

$route[$this->config->item('routes')['insertUser']]['post'] = 'UserController/insert';

, а затем в представлении вы можете вызвать его динамически, как это:

echo form_open( base_url( $this->config->item('routes')['insertUser'] ) );

Так что каждый раз, когда вам нужно изменить маршрут, вы просто изменяете на config.php .

0 голосов
/ 18 января 2019

Способ, которым laravel реализует его, - просто путем присвоения имени маршруту, который вы уже можете сделать самостоятельно в codeingniter, используя $config[], просто создав новый файл конфигурации в вашем app/config и назвав свой маршрут как свой.сделал в laravel как это:

$config['insertUser'] = 'users/add';

Затем загрузите этот файл конфигурации в ваш контроллер следующим образом:

$this->load->config('your_config_file_name');

Затем, по вашему мнению, вы можете использовать это значение следующим образом:

form_open( base_url( $this->config->item('insertUser') ) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...