thinkphp关联模型为什么老是relation方法不存在,我继承的也是RelationModel()啊 10

我在模型里写的是:namespaceHome\Model;useThink\ModeluseThink\Model\RelationModel;classUserMode... 我在模型里写的是:
namespace Home\Model;
use Think\Model
use Think\Model\RelationModel;
class UserModel extends RelationModel {
protected $trueTableName = 'person_user';
protected $_link=array(
'Cimage'=>array(
'mapping_type'=>self::HAS_MANY,
'foreign_key'=>'company_id',
'mapping_fields'=>'img_url'
)
)
我在控制器里写的是
namespace Home\Controller;
use Think\Controller;
use Home\Model\UserModel;
use Think\Model\RelationModel;
class UserController extends Controller {
public function index(){
$cuser=D('Cuser');
var_dump($cuser->relation('Cimage')->select());

}
}
;
展开
 我来答
柯方010
2015-01-15 · 超过27用户采纳过TA的回答
知道答主
回答量:71
采纳率:100%
帮助的人:47.1万
展开全部
把你的类UserModel改成CuserModel就行了,你这样他找不到Cuser这个模型的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秀乞群群
2015-01-15 · TA获得超过19万个赞
知道顶级答主
回答量:6.7万
采纳率:91%
帮助的人:2.4亿
展开全部
ThinkPHP关联模型RelationModel的relation()方法的参数获取是这样定义的:
1、当传入参数为true时,引入所有的关联,这个一点儿问题都没有;
2、当传入的参数为一个字符串时,这时表示relation()方法接受了一个局部关联的名称,对于这个局部关联表的名称ThinkPHP是这样判断的:
首先检查关联表中的’mapping_name’属性,如果存在的话就将传入的参数与’mapping_name’进行比较确定要关联的关联表,如果找不到的话就放弃这个关联了。
其次是如果关联表中没有定义‘mapping_name’属性,则查找$_link中的键名,找到相同的进行关联,找不到就放弃关联。
所以犯的错误就是定义了’mapping_name’属性值为‘usermail’,然后调用relation(‘Users’)这个方法,当然就找不到相关联的表了,所以也就无法进行关联。
解决办法就是删除’mapping_name’属性或则将relation()方法参数改为relation(‘usermail’),OK!这样问题就得到了解决。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宇文苡尘0L
2015-01-15 · TA获得超过565个赞
知道答主
回答量:127
采纳率:0%
帮助的人:71.3万
展开全部
$cuser=D('Cuser'); 为什么是Cuser?
追问
Cuser是表名啊
追答
这里应该是模型名吧 应该是D('user') 因为你的模型不叫Cuser啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式