Maison > Questions et réponses > le corps du texte
tp6, définissez une nouvelle méthode de modification dans le modèle
Dans tp51, utilisez directement self::save() pour indiquer un nouvel ajout
Mais dans tp6, utilisez self::save(), une erreur est signalée, ce n'est pas une méthode statique
La méthode non statique thinkModel::save() ne doit pas être appelée de manière statique
Si vous utilisez $this, une erreur sera signalée
Utiliser $this lorsqu'il n'est pas dans le contexte de l'objet
Alors, comment pouvez-vous appeler la méthode parent dans le modèle pour l'ajouter ?
<?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()]; } }
朝游东海2019-04-24 11:07:32
Résolu, mon problème
<?php namespace app\common\model; use think\Model; use think\exception\PDOException; class Common extends Model { // protected static function init(): void { } /** * 添加修改 **/ public function addEdit(array $data = []){ //去掉static静态声明 $type = isset($data['id']) ? ($data['id']>0 ? 2 : 1) : 1; //?? ?: try { if($type == 2){ //更新 $row = self::update($data); }else{ $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()]; } }
peut appeler la méthode save(), mais
une erreur s'est produite à nouveau
array_merge() : L'argument n°1 n'est pas un tableau
$field = array_merge($this->field , $append);
Imprimer $this->field
eq true
???
clic droit, fermer tout,
Revenir après la sortie officielle