我有一个" Pages"具有翻译行为的模型。我想用CakePHP 3.x搜索与另一种语言匹配的页面。
class PagesTable extends Table
{
public function initialize(array $config)
{
$this->addBehavior('Translate', ['fields' => ['title', 'slug']]);
}
}
我在我的控制器中设置了i18n语言环境,然后搜索:
class PagesController extends AppController
{
/**
* View method
*/
public function view( $slug = '' )
{
I18n::locale('nl_NL');
$this->Pages->findBySlug("foobar-in-nl")->first();
}
}
但遗憾的是我没有获得我想要的纪录。有没有办法实现这个目标?
答案 0 :(得分:0)
我认为findBySlug()函数在这种情况下不起作用,因为在您的页面表中没有该字段。
您应该这样操作:
public function view( $slug = '' )
{
I18n::locale('nl_NL');
$this->Pages->find()
->where( ['Pages_slug_translation.content' => $slug] )
->firstOrFail();
}