Php 从CodeIgniter中的视图调用路由
我希望避免在视图中硬编码URL 例如: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('
//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上更改即可