控制器代码:
<?php
namespace Home\Controller;
use Think\Controller;
class UserController extends Controller {
public function index(){
//展示一对多关系
$user=D("user");
$arr=$user->field("id,username")->relation(true)->select();
dump($arr);
print_r($arr);
}
}模型代码:<?php
namespace Home\Model;
use Think\Model;
use Think\Model\RelationModel;
class UserModel extends RelationModel{
//展示一对多关系
Protected $_link=array(
"content"=>array(
"mapping_type"=>self::HAS_MANY,
"foreign_key"=>"uid",//关联表的ID
//"mapping_fields"=>"code",//只查询一个字段
//"as_fields"=>"code:mycode"//为防止与本表冲突,as一个字段名
),
);
}content表
运行后出错:
:(
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'uid' in 'where clause'
错误位置
FILE: F:\website\thinkphp\ThinkPHP\Library\Think\Db\Driver.class.php LINE: 156
TRACE
#0 F:\website\thinkphp\ThinkPHP\Library\Think\Db\Driver.class.php(156): PDO->prepare('SELECT * FROM `...')
#1 F:\website\thinkphp\ThinkPHP\Library\Think\Db\Driver.class.php(946): Think\Db\Driver->query('SELECT * FROM `...', false)
#2 F:\website\thinkphp\ThinkPHP\Library\Think\Model.class.php(579): Think\Db\Driver->select(Array)
#3 F:\website\thinkphp\ThinkPHP\Library\Think\Model\RelationModel.class.php(174): Think\Model->select()
#4 F:\website\thinkphp\ThinkPHP\Library\Think\Model\RelationModel.class.php(113): Think\Model\RelationModel->getRelation(Array, true)
#5 F:\website\thinkphp\ThinkPHP\Library\Think\Model\RelationModel.class.php(68): Think\Model\RelationModel->getRelations(Array, true)
#6 F:\website\thinkphp\ThinkPHP\Library\Think\Model.class.php(589): Think\Model\RelationModel->_after_select(Array, Array)
#7 F:\website\thinkphp\Demo\Home\Controller\UserController.class.php(15): Think\Model->select()
#8 [internal function]: Home\Controller\UserController->index()
#9 F:\website\thinkphp\ThinkPHP\Library\Think\App.class.php(173): ReflectionMethod->invoke(ob
#10 F:\website\thinkphp\ThinkPHP\Library\Think\App.class.php(110): Think\App::invokeAction(ob
#11 F:\website\thinkphp\ThinkPHP\Library\Think\App.class.php(204): Think\App::exec()
#12 F:\website\thinkphp\ThinkPHP\Library\Think\Think.class.php(120): Think\App::run()
#13 F:\website\thinkphp\ThinkPHP\ThinkPHP.php(97): Think\Think::start()
#14 F:\website\thinkphp\Demo\index.php(3): include('F:\website\thin...')
#15 {main}
ThinkPHP3.2.3 { Fast & Simple OOP PHP fr
表里明显是有uid这个字段。
如果我把模型里的content改成abc然后把表名也改成abc就可以了,只要是content就出错,不管有没有这个表,还是这个表里有没有uid字段都提示出错
难道content是关联模型里系统用的吗?
最佳答案