tp6, comment appeler la méthode de sauvegarde héritée dans le modèle pour ajouter de nouvelles données ?
朝游东海
朝游东海 2019-04-24 10:15:03
0
1
2482

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()];
        }
    }


朝游东海
朝游东海

要成为大佬

répondre à tous(1)
朝游东海

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!