在codeigniter中创建自定义URL

时间:2016-07-15 14:18:46

标签: php codeigniter codeigniter-3

模型

SELECT RPAD(extractValue(Entete.column_value, '//NbDoc'),2,' ') AS NbDoc
FROM COMMUN.SESSION_TEMP_XML s
,TABLE( XMLSequence( extract( s.xml_data 
,'//Agregat//Entete','xmlns:DGE="urn:ops:rncps:dge"') ) ) Entete

控制器:

function get_footer_pages(){
    $query=$this->db->where('section','footer');
    $query=$this->db->get('pages');
    if($query->num_rows()>0){
        $result=$query->result_array();
        return $result;
    }else{
        return false;
    }
}
function get_url($row){
    $title=$row['title'];
    $not_allowed=array('/','?','\"','&','"',':','%','\'',',');
    $title=str_replace($not_allowed,'',$title);
    $title=str_replace(' ','-',$title);
    $title=$title."_".$row['id'];
    return $title;
}

查看:

$data['footer_pages']=$this->Home_model->get_footer_pages();

我想在功能<?php foreach($footer_pages as $f_pages){ ?> <li><a href="<?php echo $f_pages['url'] ?>"><?php echo $f_pages['name'] ?></a></li> <?php } ?> 中执行urltitle的{​​{1}}组合。

现在问题:

是如何在id中调用此get_url()来制作get_url()所有结果的网址,并在get_footer_pages() get_footer_pages()中使用此网址}?

1 个答案:

答案 0 :(得分:0)

如果要在所有视图中使用此功能,最好将其放在帮助程序中(并确保自动加载该帮助程序)。然后,在您的视图中,您将拥有:

<?php foreach($footer_pages as $f_pages){ ?>
  <li><a href="<?php echo get_url($f_pages) ?>"><?php echo $f_pages['name'] ?></a></li>
<?php } ?> 

这会动态生成网址 - 无论何时需要显示网址,而不是一次生成所有网址,然后再次遍历它们,以便在视图中显示它们。

既然你的网址中有你的网址,你需要正确处理它们。首先,您需要在路径文件中创建一个路径,该路径将捕获所需的URL并将它们传递给应该处理该操作的控制器。您尚未指定该部分,因此以下是您可以创建自己的路线的示例。

$route['product/:num'] = 'catalog/product_lookup/$1';

这样做是当应用收到example.com/product/1之类的请求时,它实际调用product_lookup控制器的catalog函数并将1作为函数参数传递。< / p>