THINKPHP add问题

散兵 2015-08-04 03:39:23
请教各位大牛一个thinkphp问题:
问题描述如下:
我需要从页面上传递参数id过来,并且将id值写入到数据库中,但过程中发现,在submit的时候该参数被置为null值导致insert 不仅数据库。
其中$viewpoint_id得到的值为空
代码如下:

public function food_add() {
$Food=M('Food');
$FoodType=M("FoodType");

if (isset($_POST['save'])) {
//判断是否已经添加了菜品
$viewpoint_id= $_GET['id'];
$id=$_POST['names'];
$this->food_add2($id,$viewpoint_id);

} else {
// 显示数据
$lists = $Food->field("food.name,food.food_type,food.price,food.id,manager.path")
->table($Food->getTableName()." food")
->join(M("file_manager")->getTableName()." manager on food.pic = manager.id")
->page($page)->order('food.id desc')->select();

foreach ($lists as $k => $v) {
$lists[$k]['path'] = __ROOT__.$lists[$k]['path'];
$lists[$k]['type_name'] = $FoodType->where("id={$v['food_type']}")->getField('type_name');
}
$this->assign('lists', $lists);
$this->display('food_add');
}
}

public function food_add2($id,$vid){
$Food=M('Food');
$FoodType=M("FoodType");
$FoodDinner=M('ViewpointDinner');
//获取FOODID
$food_id= implode(',' ,$_POST['names']);
$food_detail=$Food->where(array('id'=>array('in',$food_id)))->select();
$FoodDinner->create();
foreach ($food_detail as $k => $v) {
$FoodDinner->id = $food_detail[$k]['id'];
$FoodDinner->type = $food_detail[$k]['food_type'];
$FoodDinner->names = $food_detail[$k]['name'];
$FoodDinner->price = $food_detail[$k]['price'];
$FoodDinner->pic = $food_detail[$k]['pic'];
$FoodDinner->create_time = strtotime(date('Y-m-d H:i:s'));
$FoodDinner->sort=1; //排序
$FoodDinner->is_low=1; //低消
$FoodDinner->viewpoint_id=$vid;
$FoodDinner->add();
}
}


尝试过在外层获取$viewpoint_id,可以获取值,但到了foreache时,就为空了,请问这个问题怎么处理呢?
...全文
163 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
散兵 2015-08-06
  • 打赏
  • 举报
回复
@xuzuning 谢谢你的回复,已经解决了我的问题。也感谢@namelesswei @shengli881026的回复。
xuzuning 2015-08-06
  • 打赏
  • 举报
回复
表单有 action 属性,你的 id 可写在它上面 一个在表单里应隐藏控件传递,不过就不是 $_GET['id'] 而是 $_POST['id'] 了
散兵 2015-08-06
  • 打赏
  • 举报
回复
@xuzuning 请问如何处理呢?
xuzuning 2015-08-06
  • 打赏
  • 举报
回复
你的 $_POST['save'] 和 $_GET['id'] 分属于两个不同的来源 所以这两个值不可能同时存在
散兵 2015-08-06
  • 打赏
  • 举报
回复
@namelesswei @shengli881026 感谢两位回复,提交是POST提交,$_GET['id']是获取从其他页面传过来的参数 传参链接如下:
 <a href="__URL__/food_add/id/{$vo.id}">添加低消</a> 
zhangshl_php 2015-08-05
  • 打赏
  • 举报
回复
提交的方式是啥? POST?
namelesswei 2015-08-05
  • 打赏
  • 举报
回复
//判断是否已经添加了菜品
             $viewpoint_id= $_GET['id'];
                 $id=$_POST['names'];
怎么一个get一个post
php大版主说分太高...就改了 版本: ThinkPHP_3.0RC2_Core 作者: selfimpr Blog: http://blog.csdn.net/lgg201 Mail: lgg860911@yahoo.com.cn 环境/工具: • php-5.3.5-fpm • nginx-1.0.14 • vim + vim.debugger • xdebug-2.2.0RC1 参考: • 模式: ThinkPHP_3.0_Full • 概念: ThinkPHP3.0完全开发手册 目的: 1. 熟悉ThinkPHP工作流程 2. 熟悉ThinkPHP提供的公共函数库 3. 熟悉ThinkPHP的Action, Model, View等封装 4. 了解ThinkPHP的ORM 5. 熟悉ThinkPHP的模板引擎和标签库 概要: 通过阅读ThinkPHP源代码熟悉基于其的MVC开发, 并了解MVC框架实现细节. 评价: 1. 文档鼓励跨模块调用, 增加了系统耦合度 2. 系统未设计统一出口, 导致系统可控性较差 3. 整体代码略显杂乱, 少量硬编码 代码问题: 1. redirect()函数中设计了中转页, 但未暴露相应编程接口 2. URL_CASE_INSENSITIVE表意不明确, 它的含意是使用C风格命名(下划线)还是使用Java风格命名(驼峰) 3. 系统函数中大量使用了静态变量缓存, 但是部分实现上存在读/写key不一致的bug, 比如A, D 4. U方法中将协议硬编码为http://, 不利于扩展 5. Db的工厂接口getInstance()会导致factory()被调用两次 6. 配置了读写分离(DB_RW_SEPARATE)和DB_MASTER_NUM(大于0)时, 存在bug导致master库之前的数据库不能被命中. 7. Db->add()方法中对_after_insert()回调的处理依赖last_insert_id, 对无自增id的表则无法处理 8. TagLibCx中compiler()方法对标签的处理, literal编号只有一位数字, 当模板中标签超过10个时, 导致模板无法展现. 涉及点: 1. 设计相关概念 2. 请求分发流程 3. 数据库抽象层 4. Mysql数据库驱动层 5. Model层基类 6. 视图层 7. 内建标签库 8. 少量公共函数

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧