Yii框架:关系返回NULL
我在申请中遇到了关系问题。我有以下表格: 职位: id |标题|文本|标签 1 |拉拉|拉拉| 1 邮政标签: id |名称 1 |安全 2 |其他 两种型号:Post,postlab 和关系在post模型中: 'postLabel'=>数组(self::HAS_ONE,'postLabel','id') 当我使用此选项时: $model=$this->loadModel('Post',1) 变量转储($model->postlab) 它返回NULL,但当我使用: $model=$this->loadModel('Post',1) 变量转储($model->title) 它返回“拉拉” 我哪里出错了Yii框架:关系返回NULL,yii,frameworks,Yii,Frameworks,我在申请中遇到了关系问题。我有以下表格: 职位: id |标题|文本|标签 1 |拉拉|拉拉| 1 邮政标签: id |名称 1 |安全 2 |其他 两种型号:Post,postlab 和关系在post模型中: 'postLabel'=>数组(self::HAS_ONE,'postLabel','id') 当我使用此选项时: $model=$this->loadModel('Post',1) 变量转储($model->postlab) 它返回NULL,但当我使用: $model=$this->l
编辑:我看到在sql查询中使用了post id,但没有标签id。如何更改此设置?您没有任何表或属性来连接这两个表 帖子只有
id | title | text | category
和帖子标签id | name
,但我们怎么知道哪个标签属于哪个帖子
在post_标签中,您应该有一个类似于post_id
的字段,并且在关系中您将声明
'postLabel' => array(self::HAS_ONE, 'PostLabel', 'post_id'),
然后你会得到一些东西 您没有任何表或属性来进行两个表之间的连接 帖子只有
id | title | text | category
和帖子标签id | name
,但我们怎么知道哪个标签属于哪个帖子
在post_标签中,您应该有一个类似于post_id
的字段,并且在关系中您将声明
'postLabel' => array(self::HAS_ONE, 'PostLabel', 'post_id'),
然后你会得到一些东西 您的关系使用了错误的外键列。它必须是
标签
:
'postLabel' => array(self::HAS_ONE, 'PostLabel', 'label'),
您的关系使用了错误的外键列。它必须是
标签
:
'postLabel' => array(self::HAS_ONE, 'PostLabel', 'label'),
我知道这听起来有悖常理(我花了一些时间才习惯),但实际上你需要使用“属于关系”,而不是“拥有关系” 检查此链接: 关键点:属于关系的字段表示此模型中的一个字段指向另一个模型中的主键;在这种情况下,当前模型拥有链接字段 关键点:一个关系表示另一个模型有一个指向该模型主键的链接字段;在这种情况下,相关模型拥有链接字段 因为标签是指向另一个(PostLabel)模型主键的(PostLabel)模型中的键,所以需要使用“属于关系” 因此,您的关系定义应该如下所示:
'postLabel' => array(self::BELONGS_TO, 'PostLabel', 'label')
我知道这听起来有悖常理(我花了一些时间才习惯),但实际上你需要使用“属于关系”,而不是“拥有关系” 检查此链接: 关键点:属于关系的字段表示此模型中的一个字段指向另一个模型中的主键;在这种情况下,当前模型拥有链接字段 关键点:一个关系表示另一个模型有一个指向该模型主键的链接字段;在这种情况下,相关模型拥有链接字段 因为标签是指向另一个(PostLabel)模型主键的(PostLabel)模型中的键,所以需要使用“属于关系” 因此,您的关系定义应该如下所示:
'postLabel' => array(self::BELONGS_TO, 'PostLabel', 'label')
什么返回空值?
$model
为空还是$model->postlab
?请发布生成的SQL查询。$model->postlab返回NULL。查询:“选择postLabel
id
作为t1\u c0
,postLabel
name
作为t1\u c1
从postLabel
中(postLabel
id
='1009')`What返回空值?”?$model
为空还是$model->postlab
?请发布生成的SQL查询。$model->postlab返回NULL。查询:“选择postLabel
id
作为t1\u c0
,postLabel
,name
作为t1\u c1
从postLabel
中(postLabel
id
='1009')`“对不起,我写的是“类别”,但我的意思是“标签”。我想加入'label'(来自post)和'id'(来自post_label)。这是一种方法吗?对不起,我写的是“分类”,但我的意思是“标签”。我想加入'label'(来自post)和'id'(来自post_label)。有办法吗?我就是这个意思!非常感谢你!我就是这个意思!非常感谢你!