我有一个带有 CMS 的 CI 应用程序,我一直想知道如何让用户控制他们将发布的博客文章的 url。我了解 routes.php 文件,但我只是想知道如何允许用户将 url 更改为他们想要的东西?我以前没有这样做过,所以我不确定如何在 CI 中做到这一点。
提前致谢
我有一个带有 CMS 的 CI 应用程序,我一直想知道如何让用户控制他们将发布的博客文章的 url。我了解 routes.php 文件,但我只是想知道如何允许用户将 url 更改为他们想要的东西?我以前没有这样做过,所以我不确定如何在 CI 中做到这一点。
提前致谢
我怀疑您的意思是诸如 wordpress 的帖子标题之类的东西,因此标题成为 URL 的一部分?
您需要在 application/config/routes.php 中为控制器设置自定义路由,例如
$route['posts/(:any)'] = "posts/posts_method/$1";
Posts_method 是指使用给定变量搜索帖子的方法。
我认为最好的方法是使用 URL Slug 来引用文章。您可以插入文章的标题,然后为其设置 slug,这样当用户单击 slug 时,您应该使用 slug 在数据库中运行查询来搜索文章。
表格示例:
id_article
title
body
slug
示例表格:
Title: <input type="text" name="title">
Body: <textarea name="body"></textarea>
Slug: <input type="text" name="slug">
让我们假设这篇文章的条目:
Title: Hi, this is my first post!
Body: Wow i'm so happy
slug: my-awsome-post
当您创建指向帖子的链接时,您应该使用 slug 作为 id,例如:
<a href="http://www.example.com/blog/show/my-awsome-post">Read more</a>
当您在模型中运行查询时,您可以使用 where clausole slug:
$this->db->get_where('table', array('slug'=>$slug));