我用的是最新的2.0版 在MODEL中写好了关联定义
现在要在控制器里查数据
用手册里说的relation(true)方法但是提示错误:Model:relation您所请求的方法不存在怎么回事呢?请帮我解答,谢谢大家啦
源码关联定义(MODEL中)
public $_link =array(
    'lyType'=>array(
        'maping_type'=>HAS_ONE,
        'class_name'=>'lyType',
        'foregin_key'=>'typeId',
    ),
关联查询(控制器中)
$ly=new lyModel();
     $list=$ly->relation(true)->find(1);
错误提示:
Model:relation您所请求的方法不存在
求救啊 
谢谢

解决方案 »

  1.   

    Model类里没有这个方法relation1. 你的lyModel有继承model类吗?2. 还有你的写法。。$ly   = D('lyModel');$list = $ly->relation(true)->find(1);
      

  2.   

    详细见文档 http://thinkphp.cn/download/relation.swf
      

  3.   

    1 楼的 有点问题TP框架模型文件名 LyModel.class.php<?php
    class LyModel extends Model {}
    ?>实例化:
    方法一 $ly=new LyModel();
    方法二 $ly=D('Ly');
      

  4.   


    是这样写的
    实例化用的方法一
    也继承了MODEL
      

  5.   

    注意:大小写一定要严格
    lyModel() != LyModel()
      

  6.   


    我就是按照文档里的例子来做的
    但死活提示没有relation()方法也已经继承了model类
      

  7.   

    relation 这个方法可以查 TP 的API
    还没在 TP 中使用过 联合查询
      

  8.   


    哦,
    请教一下 
    如果不用联合查询
    那么涉及到要从多个表里取数据 而且是关联的
    怎么办呢
    我直接写了SQL语句 但是考虑到表前缀的问题(用户安装我写好的程序,会时自己填写表前缀,那么在SQL里表前缀就只能用变量来表示 ,这就会牵着到跟多的问题来) 所以还是想从TP自带的方法里找找
      

  9.   


    统一改过来了
    错误依旧
    试过 其他的方法正常 唯独这个relation()方法找不见
    我在model.class.php里也没找见relaton方法
      

  10.   

    把model.class.php换了,重新下载一个,否则找官方算帐去。
      

  11.   


    我也这么怀疑
    可能是被去掉了 或者换成别的了 但是手册上没有改过来我试试1.5的看看吧
    这个小问题
    把我郁闷了大半天了刚从官网上重新下的2.0  检查发现model.class.php里确实没有relation方法
    大概是移到了别的地方去了 手册上没给说明而已吧
      

  12.   

    class UserModel extends RelationModel继承 RelationModel 这个类