method not exist:think\db\Query->save

浏览:16867 发布日期:2018/08/25 分类:求助交流 关键字: 数据更新
我用controller去调用对应的model提示不存在
userModel.php<?php
/**
 * Created by PhpStorm.
 * User: WangLei
 * Date: 2018/7/12
 * Time: 17:43
 */
namespace app\shop\model;
use think\Model;
class UserModel extends Model
{
    protected $name='user';
    protected $autoWriteTimestamp ='timestamp';
    protected $createTime = 'created_at';
    protected $updateTime = 'updated_at';
    public function add($data){
        $this->updateTime=false;
        $this->createTime=true;
        $id=$this->allowField(true)->insertGetId($data);
        return $id;
    }

    public function edit($data){
        $this->createTime=false;
        $this->updateTime=true;
        return $this->allowField(true)->where('id',$data['user_id'])->save($data);
    }
}
Shop.php<?php
/**
 * Created by PhpStorm.
 * User: wl
 * Date: 2017/11/25
 * Time: 9:49
 */

namespace app\shop\controller;

use app\shop\model\ShopModel;
use app\shop\model\UserModel;
use think\Db;
use think\Request;

class Shop extends Common
{
    public function _initialize()
    {
        parent::_initialize(); // TODO: Change the autogenerated stub
        if (!session('shop.type')) {
            $this->redirect("/shop/Index/login");
        }

        $this->model = model("ActivityModel");
    }


    /*
     * 商家后台管理-活动管理
     * */
    public function activity()
    {
        if (Request::instance()->isPost()) {

        }
        else {
            $db=db('company_activity');
            /*查询列表时对活动的时间是否过期做检测,如过期,则更改其活动状态,暂时先这样处理,后期做相应的优化*/
           $db->where('company_id','eq',session('shop.id'))->chunk(100,function ($data)use($db){
           foreach ($data as &$v){
               if(strtotime($v['end_time'])<time() && $v['status']!=2){
                   $db->where('id','eq',$v['id'])->setField('status',2);
               }
               else{
                   continue;
               }
           }
            });
            $keyword = input("keyword");
            if ($keyword) {
                $where["title|content"] = array("like", "%{$keyword}%");
            }
            $where['company_id'] = session("shop.id");
            $count = $db->where($where)->count();
            $data = $db->where($where)->paginate(10, $count)->each(function ($v) {
                $v['company_id'] = db('company')->where(['id' => $v['company_id']])->value('fullname');
                $v['type_id'] = db('company_type')->where(['id' => $v['type_id']])->value('name');
                if ($v['status'] == 0) {
                    $v['status'] = "正常";
                } elseif ($v['status'] == 1) {
                    $v['status'] = "取消";
                }
                elseif ($v{'status'}==2){
                    $v['status'] = "已过期";
                }
                return $v;
            });
            $page = $data->render();
            $this->assign("page", $page);
            $this->assign("data", $data);

        }
        return view();
    }


    public function activity_edit(){
      $action = input("action");
      $id=input('id',0,"int");
      $cid=session('shop.id');//companyid
      $this->assign('action',$action);
        $line_list=db('company_special_line')->where('company_id','eq',$cid)->field('id,from_province_name,from_city_name,from_area_name,to_provice_name,to_city_name,to_area_name')->select();
        foreach ($line_list as &$v){
            $v['fraddress']=$v['from_province_name'].$v['from_city_name'].$v['from_area_name'];
            $v['toaddress']=$v['to_provice_name'].$v['to_city_name'].$v['to_area_name'];
        }
        $this->assign("list", $line_list);//专线列表,不管是添加还是修改,都要有专线列表
        if ($action == "add") {
            $data = input("post.");
           if($data){
               if(is_array($data['line_id'])){
                   $data['line_id']=implode(',',$data['line_id']);
               }
               $data['begin_date']=strtotime($data['begin_date']);
               $data['end_date']=strtotime($data['end_date']);
               if ($this->model->check_title($data['title'])) {
                   $this->error("活动标题已存在");
               }
               $data['company_id'] = $cid;
               $data['type_id'] = session("shop.type");
               $result = $this->model->add($data);
               if ($result) {
                   $this->success("添加成功");
               } else {
                   $this->error("添加失败");
               }
           }
           else{
               return view();
           }
        }
        elseif ($action == "edit") {
         $data=input('post.');
         if($data){
             foreach ($data as $key=>$val){
                 if($val==''){
                     unset($data[$key]);
                 }
                 }
             if(is_array($data['line_id'])){
                 $data['line_id']=implode(',',$data['line_id']);
                 $data['begin_date']=strtotime($data['begin_date']);
                 $data['end_date']=strtotime($data['end_date']);
             }
             $data['company_id']=$cid;
             $result = $this->model->edit($data);
             if ($result) {
                 $this->success("修改成功");
             } else {
                 $this->error("修改失败");
             }
         }
         else{
             $info = $this->model->get_activity($id);

             if ($info) {
                 $this->assign("info", $info);
             }

             return view();
        }

        }
    }

    public function ajax_activity_delete()
    {
        $this->model = model("ActivityModel");
        $id = empty($_POST['id']) ? 0 : $_POST['id'];
        if (is_array($id)) {
            $id = input("post.id/a", "");
        } else {
            $id = input("post.id", 0, "int");
        }
        $result = $this->model->delete_activity($id);
        if ($result) {
            return json(['code' => 200, 'msg' => '删除成功']);
        } else {
            return json(['code' => 220, 'msg' => '删除失败']);
        }
    }

    public function ajax_change_activity_status()
    {
        $this->model = model("ActivityModel");
        $data['id'] = input("post.id", 0);
        $data['status'] = input("post.status", "");
        $result = $this->model->change_status($data);
        if ($result) {
            return json(['code' => 200, 'msg' => '修改成功']);
        } else {
            return json(['code' => 220, 'msg' => '修改失败']);
        }
    }

    public function test_oss()
    {

        if (Request::instance()->isPost()) {
            try {
                $file = request()->file('image');
                if (empty($file)) {
                    die('请选择上传的文件');
                }
                $allow_max_size = 2 * pow(1024, 2);
                $allow_upload_ext = ['gif', 'jpg', 'jpeg', 'bmp', 'png', 'wbmp'];
                $path = ROOT_PATH . 'public' . DS . 'uploads';
                $info = $file->validate(['size' => $allow_max_size, 'ext' => $allow_upload_ext])->move($path);
                if (!$info) {
                    var_dump($file->getError());
                    die();
                }
                $ext = "." . substr($info->getSaveName(), strrpos($info->getSaveName(), '.') + 1);
                $fileName = 'uploads/' . date("Ymd", time()) . "/" . mt_rand(10000, 999999) . $ext;
                $ossClient = Oss::getInstance();
                $bucket = Oss::getBucketName();
                $data = $ossClient->uploadFile($bucket, $fileName, $info->getPathname());
                if ($data) {
                    if ($data['info']['http_code'] == 200) {
                        $osspath = $data['info']['url'];
                        echo $osspath;
                    }
                }
            } catch (OssException $e) {
                return $e->getMessage();
            }
        } else {
            return view();
        }
    }

    public function test_upload()
    {
        if (Request::instance()->isPost()) {
            $size = $this->getFileSize('img');
            dump($size);
        } else {
            return view();
        }

    }

    public function baseinfo()
    {
        $provice_list = db('user_provice_city_area')->where(['parent_id' => 0])->order('first_letter asc')->select();
        $company_type_list = db('company_type')->where(['pid' => 0])->select();
        $this->assign("provice_list", $provice_list);
        $this->assign("company_type_list", $company_type_list);
        $keyword = input("post.keyword");
        if ($keyword) {
            $where["fullname|phone|second_phone"] = array("like", "%{$keyword}%");
        }
        $where['id'] = session("shop.id");
        $count = db('company')->where($where)->count();
        $data = db('company')->where($where)->field('password', true)->paginate(10, $count)->each(function ($v) {
            $v['type_name'] = db('company_type')->where(['id' => $v['type']])->value('name');
            return $v;
        });
        

        if($data[0]['qualification_image']){
            $qualificationImages = json_decode($data[0]['qualification_image']);
            $this->assign('qualificationImages',$qualificationImages);
           
        }
        //荣誉图片
        if($data[0]['honor_image']){
            $honorImages = json_decode($data[0]['honor_image']);;
            $this->assign('honorImages',$honorImages);
           
        }
        //实景图片
        if($data[0]['real_image']){
            $realImages = json_decode($data[0]['real_image']);
            $this->assign('realImages',$realImages);
           
        }

        $page = $data->render();
        $this->assign('list',$data[0]);
        $this->assign("page", $page);
        $this->assign("data", $data);
        
        
        //dump($data);

        return view();

    }
/*
 * 如果不传递图片的话,现在实现的是不修改图片的数据下进行数据的提交
 * */
    public function baseinfo_update()
    {
        if (Request::instance()->isPost()) {
            $data = Request::instance()->post();
            /*判断公司类型是否是海运,如果是海运,则把相应的字段替换*/
            $type=db('company')->where('id','eq',session("shop.id"))->value('type');
            if($type==25){
                $data['line']=$data['lines'];
            }
            $qualification_image = $data['qualification_image'];

            if(!empty($qualification_image[0])){
                foreach ($qualification_image as $key =>$v){
                    if(empty($qualification_image[$key])){
                        unset($qualification_image[$key]);
                    }
                }
                $adddata['qualification_image'] = json_encode($qualification_image);
            }
            else{
                $adddata['qualification_image']="[]";
            }

            $honor_image =$data['honor_image'];
            if(!empty($honor_image[0])){
                foreach ($honor_image as $key =>$v){
                    if(empty($honor_image[$key])){
                        unset($honor_image[$key]);
                    }
                }
                $adddata['honor_image'] = json_encode($honor_image);
            }
            else{
                $adddata['honor_image']="[]";
            }

            $real_image = $data['real_image'];
            if(!empty($real_image[0])){
                foreach ($real_image as $key =>$v){
                    if(empty($real_image[$key])){
                        unset($real_image[$key]);
                    }
                }
                $adddata['real_image'] = json_encode($real_image);
            }
            else{
                $adddata['real_image']="[]";
            }
            $logo = input("post.logo","");
            if (!empty($logo)) {
                    $adddata['logo'] = $logo;
            } else {
               $adddata['logo']="";
            }
            $contact_headimage = input("post.contact_headimage","");
            if (!empty($contact_headimage)) {
              $adddata['contact_headimage']=$contact_headimage;
            } else {
                $adddata['contact_headimage']="";
            }
            if (!empty($data['line'])){
                $adddata['line'] = $data['line'];
            }
            if(!empty($data['short_name'])){
                $adddata['short_name']=$data['short_name'];
            }
            $adddata['id'] = $data['id'];
            $adddata['fullname'] = $data['name'];
            $adddata['contact'] = $data['contact'];
            $adddata['duty'] = $data['duty'];
            $adddata['provice_id'] = $data['provice'];
            $adddata['city_id'] = $data['city'];
            $adddata['area_id'] = $data['area'];
            $adddata['provice_name'] = $data['provice_name'];
            $adddata['city_name'] = $data['city_name'];
            $adddata['area_name'] = $data['area_name'];
            $adddata['phone'] = $data['phone'];
            $adddata['second_phone'] = $data['second_phone'];
            $adddata['kefu_tel'] = $data['kefu_tel'];
            $adddata['tousu_tel'] = $data['tousu_tel'];
            $adddata['address'] = $data['address'];
            if (!empty($data['business_tel'])) {
                $adddata['business_tel'] = $data['business_tel'];
            }
            $adddata['scope'] = $data['scope'];//经营范围
            if (!empty($data['recommend'])) {
                $adddata['recommend'] = $data['recommend'];
            }//推荐人
            if (!empty($data['effect'])) {
                $adddata['effect'] = $data['effect'];
            } //时效
            $adddata['lng'] = $data['lng'];
            $adddata['lat'] = $data['lat'];
            $adddata['tel'] = $data['tel'];
            $adddata['wechat'] = $data['wechat'];
            $adddata['introduce'] = $data['introduce'];
            $adddata['email'] = $data['email'];
            $adddata['updated_at'] = time();
            $model = new ShopModel();
            $user_model=new UserModel();

            $user_data=$adddata;
            $user_data['user_id']=session('shop.user_id');
            $user_result=$user_model->edit($user_data);

            $result = $model->edit($adddata);
            if ($result && $user_result) {
                $this->success("修改资料成功", url("/shop/Shop/baseinfo"));
            } else {
                $this->error("修改资料失败");
            }
        } else {
            return "非法请求";
        }
    }

    public function detail(){

        $detail_id=input("id/d");
        $data=db('company')->where('id','eq',$detail_id)->find();
        if($data){
            $data['types']=db('company_type')->where('id','eq',$data['type'])->value('name');
            $data['full_address']=$data['provice_name'].$data['city_name'].$data['area_name'];
            if(is_json($data['qualification_image'])){
                $data['qualification_image']=json_decode($data['qualification_image'],true);
            }
            else{
                $data['qualification_image']="暂无图片";
            }
            if(is_json($data['honor_image'])){
                $data['honor_image']=json_decode($data['honor_image'],true);
            }
            else{
                $data['honor_image']="暂无图片";
            }
            if(is_json($data['real_image'])){
                $data['real_image']=json_decode($data['real_image'],true);
            }
            else{
                $data['real_image']="暂无图片";
            }
            if(is_json($data['line'])){
                $data['line']=json_decode($data['line'],true);
                $str = "";
                foreach ($data['line'] as $item) {
                    $str .= $item['name'] . ",";
                }
                $str = substr($str, 0, -1);
                $data['line'] = $str;
            }

            $this->assign("data",$data);
            return view();
        }
        else{
            return "数据格式错误";
        }

    }

    public function test(){
        return view();
    }


}
baseinfo_update方法的$user_model->edit($data);报这个错误
怎么解决,什么原因导致的
最佳答案
评论( 相关
后面还有条评论,点击查看>>