我在主页和搜索结果中都有列表。
MODEL:
SELECT fields FROM blablabla
结果:
[[id,name],[id,name],[id,name]]
由于地方可以有自己的页面,我必须转换。它不能在模型中完成,所以:
控制器:
通过点击并按ID和NAME进行转换。
[[ID,名称seo_name],[ID,名称seo_name],[ID,名称seo_name]]
* [1,'place1'] - > [1,'place1','1_place1'] *
查看:
只是展示它。
但这一次,我必须在“搜索”页面上再次这样做。我无法从前一个控制器复制粘贴转换代码,所以我需要创建这个函数,但是放在哪里?
答案 0 :(得分:1)
正如杰克在评论中所说,你应该有表示数据库表中行的类。因此,如果您的pages
表格包含id
,title
和seo_title
列,那么您应该有一个代表您的应用中的类:
<?php
class Page
{
public $id;
public $title;
public $seo_title;
}
在创建一个SEO友好的标题方面,你通常会在Page
模型中有一个“保存前”回调或setter方法,它在title
属性上运行一个函数,lower-casing它,删除空格和标点符号等。这可能只是一个帮助类。
如果你有一个slug帮助器(SEO友好的标题也被称为slug),那么你可以用你的setter方法调用它:
<?php
class Page
{
public $title;
public $slug;
public function setTitle($title)
{
$this->title = $title;
$this->slug = SlugHelper::createSlug($title);
}
}
然后在设置页面标题时调用setter方法创建slug:
$page = new Page();
$page->setTitle('My Page');
print $page->title; // My Page
print $page->slug; // would be something like 'my-page'
然后你可以将你的页面模型保存到数据库中,知道它也有一个SEO友好的标题。