Cakephp,i18n,SQL错误,不是唯一的表/别名

时间:2010-03-22 12:16:45

标签: sql cakephp internationalization

我收到以下SQL错误:

SQL Error: 1066: Not unique table/alias: 'I18n__name'

进行简单查找查询时。

关于可能造成这种情况的可能情况的任何想法? 我正在使用bindModel方法来检索与之相关的数据吗?

这是我的代码:

$this->Project->bindModel(array(
                                        'hasOne' => array(
                                        'ProjectsCategories',
                                        'FilterCategory' => array(
                                                                'className' => 'Category',
                                                                'foreignKey' => false,
                                                                'conditions' => array('FilterCategory.id = ProjectsCategories.category_id')
                                                                ))));
$prlist = $this->Project->find('all', array(
                                                    'fields' => array('DISTINCT slug','name'),
                                                    'conditions' => array('FilterCategory.slug !='=>'uncategorised')
                                                    ))

2 个答案:

答案 0 :(得分:1)

您尚未使用或初始化控制器中使用的所需表格/型号。使用var $uses = array('your_table_name');

答案 1 :(得分:0)

我没有直接回答我的问题。然而经过一些研究,我得出了以下结论。

我决定改变我的方法并停止使用cakephp中的翻译行为。 我发现了另一个名为i18n的行为,在处理相关模型时效果更好。你可以阅读它http://www.palivoda.eu/2008/04/i18n-in-cakephp-12-database-content-translation-part-2/#comment-1380 在cakephp书中它说:

  

“请注意,只有模型的字段   你是在意志上直接做find   被翻译。通过附加的模型   协会不会被翻译   因为触发了回调   相关模型目前不是   支持“。

我不确定我是否做出了正确的选择但是我一直在努力让翻译行为在cakephp中运行,而这个解决方案至少使我正在运行的项目正常运作。