更改 Codeignitor 中的 URL 参数

问题描述 投票:0回答:1

我正在尝试将 URL 参数从行 ID 更改为文章的名称。这是我的代码

控制器

public function view($id=0)
{
    if( !isset($id) || !is_numeric($id) ) {
        redirect(base_url());
    }

    $tot = $this->Model_service->service_check($id);
    if(!$tot) {
        redirect(base_url());
    }

景色是

        <?php
        foreach ($services as $row) {
            ?>
            <div class="col-lg-4 col-md-6">
                <div class="services-item effect-item">
                    <a href="<?php echo base_url(); ?>service/<?php echo $row['name']; ?>" class="image-effect">
                        <div class="services-photo" style="background-image: url(<?php echo base_url(); ?>public/uploads/<?php echo $row['photo']; ?>)"></div>
                    </a>
                    <div class="services-text">
                        <h3><a href="<?php echo base_url(); ?>service/<?php echo $row['name']; ?>"><?php echo $row['name']; ?></a></h3>
                        <p>
                            <?php echo nl2br($row['short_description']); ?>
                        </p>
                        <div class="button-bn">
                            <a href="<?php echo base_url(); ?>service/<?php echo $row['name']; ?>"><?php echo READ_MORE; ?> <i class="fa fa-chevron-circle-right"></i></a>

请帮我提供最简单的答案,谢谢

php codeigniter url
1个回答
0
投票

您需要更改控制器中的文章查看功能。查找文章名称而不是 ID。但名称可能包含空格,这对 URL 不友好,因此使用 slug 的概念可以解决这个问题。

public function view($slug='')
{
if($slug == '') {
    redirect(base_url());
}

$tot = $this->Model_service->find_service_by_slug($slug);
if(!$tot) {
    redirect(base_url());
}

slug概念的参考链接是https://codeigniter.com/user_guide/tutorial/news_section.html

© www.soinside.com 2019 - 2024. All rights reserved.