Php 从CodeIgniter中的视图调用路由

Php 从CodeIgniter中的视图调用路由,php,codeigniter,url,view,routing,Php,Codeigniter,Url,View,Routing,我希望避免在视图中硬编码URL 例如: //view echo form_open( base_url( 'users/add' ) );... //routes $route['users/add']['post'] = 'UserController/insert'; 这样,每次我在routes中更新url时,我都必须转到view,找到表单并手动更新view中的url,这可能会非常累人 在laravel中,您可以这样命名路线: //routes.php $route->post('

我希望避免在视图中硬编码URL

例如:

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

//routes
$route['users/add']['post'] = 'UserController/insert';
这样,每次我在routes中更新url时,我都必须转到view,找到表单并手动更新view中的url,这可能会非常累人

在laravel中,您可以这样命名路线:

//routes.php
$route->post('users/add', 'UserController@insert')->name('insertUser');
$config['insertUser'] = 'users/add';
$this->load->config('your_config_file_name');
form_open( base_url( $this->config->item('insertUser') ) );
并使用辅助函数直接从视图中调用它

//view
form_open( routes('insertUser') );...
通过这种方式,您可以自动更新视图中的url,并省去手动更新的麻烦

我想知道CodeIgniter中是否有类似的东西


提前谢谢

laravel实现这一点的方法很简单,只需为路线命名,您可以在CodeInniter中使用
$config[]
自己命名路线,只需在
app/config
中创建一个新的配置文件,然后像在laravel中那样命名路线:

//routes.php
$route->post('users/add', 'UserController@insert')->name('insertUser');
$config['insertUser'] = 'users/add';
$this->load->config('your_config_file_name');
form_open( base_url( $this->config->item('insertUser') ) );
然后在控制器中加载该配置文件,如下所示:

//routes.php
$route->post('users/add', 'UserController@insert')->name('insertUser');
$config['insertUser'] = 'users/add';
$this->load->config('your_config_file_name');
form_open( base_url( $this->config->item('insertUser') ) );
然后在您的视图中,您可以像这样使用该值:

//routes.php
$route->post('users/add', 'UserController@insert')->name('insertUser');
$config['insertUser'] = 'users/add';
$this->load->config('your_config_file_name');
form_open( base_url( $this->config->item('insertUser') ) );

laravel实现它的方法很简单,只需为路线命名,您可以在CodeInniter中使用
$config[]
自己命名路线,只需在
应用程序/config
中创建一个新的配置文件,然后像在laravel中那样命名路线:

//routes.php
$route->post('users/add', 'UserController@insert')->name('insertUser');
$config['insertUser'] = 'users/add';
$this->load->config('your_config_file_name');
form_open( base_url( $this->config->item('insertUser') ) );
然后在控制器中加载该配置文件,如下所示:

//routes.php
$route->post('users/add', 'UserController@insert')->name('insertUser');
$config['insertUser'] = 'users/add';
$this->load->config('your_config_file_name');
form_open( base_url( $this->config->item('insertUser') ) );
然后在您的视图中,您可以像这样使用该值:

//routes.php
$route->post('users/add', 'UserController@insert')->name('insertUser');
$config['insertUser'] = 'users/add';
$this->load->config('your_config_file_name');
form_open( base_url( $this->config->item('insertUser') ) );

您可以首先在配置文件中设置路由器配置项(默认文件位于application/config/config.php),例如:

$config['routes']['insertUser'] = 'users/add';
然后将上述配置提供到routes.php上的标准routes项中

$route[$this->config->item('routes')['insertUser']]['post'] = 'UserController/insert';
然后在视图上,您可以这样动态调用它:

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

因此,每次如果您必须更改路由,只需在config.php

上更改即可,您可以首先在配置文件中设置路由器配置项(默认文件位于应用程序/config/config.php),例如:

$config['routes']['insertUser'] = 'users/add';
然后将上述配置提供到routes.php上的标准routes项中

$route[$this->config->item('routes')['insertUser']]['post'] = 'UserController/insert';
然后在视图上,您可以这样动态调用它:

echo form_open( base_url( $this->config->item('routes')['insertUser'] ) );
因此,如果每次必须更改路由,只需在config.php上更改即可