tp6, definieren Sie eine neue Änderungsmethode im Modell.
Verwenden Sie in tp51 direkt self::save(), um neue Hinzufügungen anzuzeigen.
Aber in tp6 verwenden Sie self::save(), es wird ein Fehler gemeldet, es handelt sich nicht um eine statische Methode
Die nicht-statische Methode thinkModel::save() sollte nicht statisch aufgerufen werden.
Wenn Sie $this verwenden, wird ein Fehler gemeldet.
Wenn Sie $this verwenden, wenn es sich nicht im Objektkontext befindet.
Wie können Sie also die übergeordnete Methode im Modell aufrufen? hinzufügen?
<?php namespace app\common\model; use think\Model; use think\exception\PDOException; class Common extends Model { // protected static function init(): void { } /** * 添加修改 **/ public static function addEdit($data = []){ $type = isset($data['id']) ? ($data['id']>0 ? 2 : 1) : 1; //?? ?: try { if($type == 2){ //更新 $row = self::update($data); }else{ $row = self::save($data); //$row = $this->save($data); } if($row !==false){ return ['status'=>1,'msg'=>'操作成功', 'data' => '' ]; }else{ return ['status'=>0,'msg'=>'操作失败', 'data' => '' ]; } } catch (PDOException $e) { return ['status'=>0,'msg'=>$e->getMessage()]; } }
已解决,自己的问题
能调用save()方法了,但是
又出错了
array_merge(): Argument #1 is not an array
$field = array_merge($this->field, $append);
打印 $this->field
eq true
???
右键,close all,
等正式发布以后再来