如何创建与语言 table 的自动连接 [文章 Article_lang]
How to create auto connection to language table [Article to Article_lang]
我有一个想法。
我们应该创建一个函数来自动从 class 连接到它的语言 class。
例如:文章连接到 Articles_lang.
默认,我们有:
belongsTo()
hasOne()
hasMany()
belongsToMany()
也许,我们需要再添加一个:
hasMultiLangFields()
例如:
class ArticlesTable extends Table
{
public function initialize(array $config)
{
$this->addBehavior('Timestamp');
$this->hasMultiLangFields(['title', 'body']);
}
}
我想当我在 Controller 中使用查询时,它会自动从 Articles_lang
中查找值
class ArticlesController extends AppController
{
public function view($id)
{
$article = $this->Articles->get($id);
$this->set(compact('article'));
}
}
结果:
$article->id = 12
$article->created = 2015-05-29T05:09:36+0000
$article->title = title 12
$article->body = body 12
数据库:
= articles =
id | int(10) Primary
created | datetime
modified | datetime
= articles_lang =
id_articles | int(11)
id_lang | int(11)
title | varchar(150)
body | text
我怎样才能得到这个?
[...] Maybe, we need add one more
也许我们没有。不仅核心提供翻译功能,还有处理此功能的插件。
我有一个想法。
我们应该创建一个函数来自动从 class 连接到它的语言 class。 例如:文章连接到 Articles_lang.
默认,我们有:
belongsTo()
hasOne()
hasMany()
belongsToMany()
也许,我们需要再添加一个:
hasMultiLangFields()
例如:
class ArticlesTable extends Table
{
public function initialize(array $config)
{
$this->addBehavior('Timestamp');
$this->hasMultiLangFields(['title', 'body']);
}
}
我想当我在 Controller 中使用查询时,它会自动从 Articles_lang
中查找值class ArticlesController extends AppController
{
public function view($id)
{
$article = $this->Articles->get($id);
$this->set(compact('article'));
}
}
结果:
$article->id = 12
$article->created = 2015-05-29T05:09:36+0000
$article->title = title 12
$article->body = body 12
数据库:
= articles =
id | int(10) Primary
created | datetime
modified | datetime
= articles_lang =
id_articles | int(11)
id_lang | int(11)
title | varchar(150)
body | text
我怎样才能得到这个?
[...] Maybe, we need add one more
也许我们没有。不仅核心提供翻译功能,还有处理此功能的插件。