【问题标题】:How to create SEO Friendly categories using CakePHP and TreeBehaviors?如何使用 CakePHP 和 TreeBehaviors 创建对 SEO 友好的类别?
【发布时间】:2013-10-02 15:53:24
【问题描述】:

我需要将分层数据存储在 mysql 表中。我正在使用 CakePHP 2.2.4。

我在 CakePHP 文档中发现了这种良好的行为: http://book.cakephp.org/2.0/en/core-libraries/behaviors/tree.html

我已经了解如何使用它,但我想使用不同的参数来查找类别,让我解释一下。

假设有这个Mysql表:(和行为文档PLUS slug栏里报道的一样:

CREATE TABLE categories (
    id INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    parent_id INTEGER(10) DEFAULT NULL,
    lft INTEGER(10) DEFAULT NULL,
    rght INTEGER(10) DEFAULT NULL,
    name VARCHAR(255) DEFAULT '',
    slug VARCHAR(255) DEFAULT '',
    PRIMARY KEY  (id)
);

此 slug 列将具有类别的真实“路径”,例如:

www.example.com/controller/action/slug

如您所见,我需要在 URL 中传递真实姓名(而不是类别编号)。

然后,我的目的是检索该类别的所有树(slug)。

目前 TreeBehavior 通过传递 ID 过滤类别。我无法通过 ID,我需要通过 slug

问题是:

我还能使用 TreeBehavior 还是必须扩展它?

谢谢!

【问题讨论】:

  • 如果你有 slug,那么只要 slug 在树中是唯一的,你就有了 id。从 slug = ... 为您提供 id 的类别中的简单选择 id
  • @SirRufo 是的,它是正确的。但是我是否必须在我的模型中实现它而不使用行为,它是否遵循 CakePHP 规则?或者我可以扩展树行为吗?
  • thinking cake 的 url 应该包含 slug id,例如www.example.com/controller/action/25/slug
  • @SirRufo 是的,应该,但我不想在 URL 中输入数字,我想创建一个 URL,例如:www.example.com/controller/action/slug跨度>
  • 我知道你不想要,但这就是蛋糕的方式。如果您不想要蛋糕方式,则必须手动返回蛋糕。行为遵循蛋糕的方式

标签: php mysql cakephp


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-27
    • 2015-11-03
    • 2011-04-08
    • 1970-01-01
    • 2015-07-07
    • 2013-09-04
    • 2014-12-04
    相关资源
    最近更新 更多