我正在尝试将 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>
请帮我提供最简单的答案,谢谢
您需要更改控制器中的文章查看功能。查找文章名称而不是 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