使用thinkphp 关联模型has_one插入数据问题:插入数据的时候只操作一张表为什么?
使用thinkphp关联模型has_one插入数据问题:插入数据的时候只操作一张表?附加表关联主表的外键是sid;具体内容主表附加表代码如下:1.sellerModel....
使用thinkphp 关联模型has_one插入数据问题:插入数据的时候只操作一张表?附加表关联主表的外键是 sid;具体内容主表
附加表
代码如下:1.sellerModel.class.php<?phpclass sellerModel extends RelationModel{ protected $_validate = array( array('username', 'require', '{%username_require}'), //不能为空 array('username', '1,20', '{%username_length_error}', 0, 'length', 1), //用户名长度 array('password', '6,20', '{%password_length_error}', 0, 'length', 1), //密码长度 ); protected $_link=array( 'seller_other'=> array( 'mapping_type'=>HAS_ONE, //'class_name'=>'seller_other', //'mapping_name'=>'sother', //外键 'foreign_key'=>'id', ), );}?>2.sellerAction.class.php 文件<?phpclass sellerAction extends Action{ public function add(){ if($this->isPost()){ $res = $this->_mod->relation(true)->add($_POST); var_dump($res); } $this->display(); }}?>调试最终执行的sql语句是 只操作seller这种数据表。 展开
附加表
代码如下:1.sellerModel.class.php<?phpclass sellerModel extends RelationModel{ protected $_validate = array( array('username', 'require', '{%username_require}'), //不能为空 array('username', '1,20', '{%username_length_error}', 0, 'length', 1), //用户名长度 array('password', '6,20', '{%password_length_error}', 0, 'length', 1), //密码长度 ); protected $_link=array( 'seller_other'=> array( 'mapping_type'=>HAS_ONE, //'class_name'=>'seller_other', //'mapping_name'=>'sother', //外键 'foreign_key'=>'id', ), );}?>2.sellerAction.class.php 文件<?phpclass sellerAction extends Action{ public function add(){ if($this->isPost()){ $res = $this->_mod->relation(true)->add($_POST); var_dump($res); } $this->display(); }}?>调试最终执行的sql语句是 只操作seller这种数据表。 展开
展开全部
这是封装好的单表关联
追问
就是主表关联附加表,一对一模型插入数据操作,结果都插入主表了,附加表的都没有参与。为什么会这样呢?没用过关联模型,一直没搞定这种问题。。
追答
这种情况,你做两次插入,别用关联模型,has_one还好理解点,has_many简直坑爹,不一定非要用TP的这个关联模型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同事添加了两条SQL语句,分别插入两个表里试试
追问
问题就出在,关联模型不插入附加表的数据,我用create方法,只能插入主表的数据,附加表的数据直接过滤了,只能手动再写一条插入附加表的操作。那这个关联模型就没有用了啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询