+ -
当前位置:首页 → 问答吧 → 调用关联模型 并在前台输出数据

调用关联模型 并在前台输出数据

时间:2011-07-28

来源:互联网

这个是我在学习关联模型的时候的心得,写出来和大家分享一下,主要是讲一对多情况下的调用。
   首先我们要建立两张表,一张是客户表,另外一张是订单,其中客户的ID(客户表的主键)为订单表的外键,表的建立就不赘述了。
   然后我们创建一个关联模型,叫UserModel.class.php,然后在这个关联模型中写入映射的关系,这个地方也不赘述,因为在教程中都有书写的方法。
   关键的地方是在相应的控制器中如何书写。
   假设,我们是把用户的数据输出到一个下拉列表中,然后根据选中的用户查询他下的订单,代码部分可以这么写:

  1. <?php
  2. //2011-7-27
  3. class UserAction extends Action{
  4. public function index(){
  5.   $user = M('user');
  6.   $list = $cate->select();
  7.   $this->assign('list',$list);
  8.   $this->display();
  9. }
  10. /*
  11.   * 查询所选中用户的订单
  12.   */
  13. public function search(){
  14.   $user = M('user');
  15.         //获取你在下拉列表中选中的用户的ID
  16.   $condition['id'] = $_POST['customer'];
  17.         $list = $user->where($condition)->find();
  18.         $result = $user->relationGet('good');
  19.         $this->assign('result',$result);
  20.         $this->display();
  21. }
  22. }
  23. ?>
复制代码
然后是User模块对应的模板文件
首先是index.html
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. <form action="__URL__/search" method="post">
  9. <select name="customer">
  10. <volist name="list" id="vo">
  11. <option value="{$vo.id}">{$vo.username}</option>
  12. </volist>
  13. </select><br />
  14. <input type="submit" value="查询" /></form>
  15. </body>
  16. </html>
复制代码
再然后就是搜索的结果页search.html


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. <volist name="result" id="vo">
  9. 商品的名称:{$vo.good_name}<br />
  10. 商品的价格:{$vo.price}<br />
  11. 商品的数量:{$vo.count}<br />
  12. <hr />
  13. </volist>
  14. </body>
  15. </html>
复制代码

作者: efcdk9090   发布时间: 2011-07-28

谢谢分享!

作者: lisan   发布时间: 2011-12-14