tp6、モデル内で継承された save メソッドを呼び出して新しいデータを追加するにはどうすればよいですか?
朝游东海
朝游东海 2019-04-24 10:15:03
0
1
2530

tp6、モデルに新しい変更メソッドを定義します。
tp51 では、self::save() を直接使用して新しい追加を示します。
ただし、tp6 では、self::save() を使用し、エラーを報告し、静的メソッドではありません
非静的メソッド think\Model::save() は静的に呼び出さないでください
$this を使用すると、エラーが報告されます
オブジェクト コンテキスト内でない場合の $this の使用
では、モデル内の親のメソッドを呼び出して追加してみてはどうでしょうか?

rreeee


朝游东海
朝游东海

要成为大佬

全員に返信(1)
朝游东海

解決しました、私の問題

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

は save() メソッドを呼び出すことができますが、

またエラーが発生しました

array_merge(): 引数 #1 は配列ではありません

$field = array_merge($this->field , $append);

Print $this->field

eq true

???

右クリックしてすべて閉じて、

正式リリース後に戻ってきてください

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート