深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 174|回复: 0
打印 上一主题 下一主题

fastadmin勾选修改失效的原因分析

[复制链接]

228

主题

466

帖子

2184

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2184
跳转到指定楼层
楼主
发表于 2024-11-7 08:31:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现象:
勾选修改时,能跳转到的修改页面,但是修改页面显示的原始数据并不是勾选的那一行

分析:
改为$row = $this->model->get(['id' => $ids])是可以正常的
  1. public function edit($ids = null)
  2.     {
  3.         $row = $this->model->get($ids);
  4.                 //$row = $this->model->get(['id' => $ids]);
  5.         if (!$row) {
  6.             $this->error(__('No Results were found'));
  7.         }
复制代码


代码:
htdocs\thinkphp\library\think\Model.php       
加$sql = $query->buildSql()输出SQL发现没有带条件

    public static function get($data, $with = [], $cache = false)
    {
        if (is_null($data)) {
            return;
        }

        if (true === $with || is_int($with)) {
            $cache = $with;
            $with  = [];
        }
        $query = static::parseQuery($data, $with, $cache);
                $sql = $query->buildSql();
               
                file_put_contents("c:/zzz.txt",$sql);
               
        return $query->find($data);
    }       


原因:
对应表的id索引被改为id+另外一个表的联合索引,导致框架判断不到主键,框架并不报错,只是直接去掉了条码,导致全表查询取第一行。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-6 02:18 , Processed in 0.030488 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表