国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman模型層賦值的問(wèn)題

jinggge

bug描述

控制器給model變量賦值,model里讀取不到值
用的think-orm

程序代碼或配置

控制器代碼
$goods = new GoodsModel();
$goods->_user = 1231;

model里代碼
 public $_user = 321;
     public function getPriceAttr($value)
    {
        $value = $value *$this->_user;

        return $value;

    }

期待的結(jié)果及實(shí)際結(jié)果

如何將$_user賦值給model里 并讀取到

系統(tǒng)環(huán)境及workerman/webman版本

webman1.4.7

1682 2 0
2個(gè)回答

nitron
$goods = new GoodsModel();
$goods->_user = 1231;
$v = $goods->getPriceAttr(2);

然后輸出什么?

  • jinggge 2022-10-20

    我需要在model里讀取到這個(gè)值,讀到的為null

nitron

給詳細(xì)代碼吧

  • jinggge 2022-10-20

    控制器里是這樣賦值的
    $goods = new GoodsModel();

    $goods->_user = 1231;//賦值用戶(hù)數(shù)據(jù)

    $detail = $goods->getGoodsDetail($goods_id);

    model里

    namespace app\api\v1\model;
    use think\Model;

    class Goods extends Model
    {
    protected $name = 'skus';//定義表名
    public $_user;//定義用戶(hù)數(shù)據(jù)

    public function getPriceAttr($value)
    {
    
        $value = $this->_user;  //取值
    
        return $value;
    
    }

    }

  • nitron 2022-10-20
    $goods = new GoodsModel();
    
    $goods->_user = 1231;//賦值用戶(hù)數(shù)據(jù)
    
    $detail = $goods->getGoodsDetail($goods_id);
    $detail->price; // 值是什么
    
    $detail->_user = 1231;
    $detail->price; // 值是什么
  • jinggge 2022-10-20

    商品價(jià)格,浮點(diǎn)型的

  • nitron 2022-10-20

    你能否照我上面的代碼跑一下,看看輸出的值?
    你能否貼貼你這個(gè)getGoodsDetail的具體代碼?

  • jinggge 2022-10-20

    好像是在模型里里定義變量,就沒(méi)辦法夸方法讀取

  • jinggge 2022-10-20

    是用think-orm的獲取讀取$_user然后對(duì)價(jià)格重新計(jì)算

  • nitron 2022-10-20

    大哥您這個(gè)問(wèn)題我解決不了,您另請(qǐng)高明吧

  • jinggge 2022-10-20

    控制器代碼
    public function getGoodsDetail(Request $request)
    {

    $source = $request->post('source',9);
    
    $goods_id = $request->post('goods_id');
    
    switch ($source) {
    
        case 1:
    
            break;
        default:
    
            $goods = new GoodsModel();
    
            $goods->_user = 1231;
    
            $detail = $goods->getGoodsDetail($goods_id);
    
            break;
    }
    
    return json(['code'=>0,'data'=>$detail,'msg'=>'獲取成功']);

    }
    模型代碼
    <?php
    namespace app\api\v1\model;
    use Exception;
    use think\Model;

    class Goods extends Model
    {

     protected $name = 'skus';
    
     public $_user;

    public function getGoodsDetail($goods_id)
    {

      try {
    
          $detail =$this->where(['sku'=>$goods_id])->withoutField('state,status_id,created_at,,created_at')->find();
    
          return $detail;
    
      } catch (Exception $e) {
    
           return json(['code'=>-1,'data'=>null,'msg'=>'服務(wù)異常,請(qǐng)聯(lián)系管理員處理!']);
    
      }

    }

    public function getPriceAttr($value)
    {

        $value =$value * $this->user;
        return $value;
    
     }

    }

  • Gin 2022-10-20

    user 放到初始化看看行不

  • Gin 2022-10-20

    getGoodsDetail($goods_id) 打印這個(gè)看看是不是模型實(shí)例的(原始)數(shù)據(jù),如果不是 獲取器是不生效的. 用動(dòng)態(tài)獲取器
    User::withAttr('name', function($value, $data) {
    return strtolower($value);
    })->select();
    這樣的試試 . 還不行就手動(dòng)吧

  • nitron 2022-10-20

    你在getGoodsDetail()里返回的是一個(gè)新的model,不是你上面的new GoodsModel(), $_user沒(méi)賦值當(dāng)然是null;

    $goods = new GoodsModel();
    $goods->_user = 1231;  // 這里賦值針對(duì)的是$goods
    
    $detail = $goods->getGoodsDetail($goods_id);  // 這里是新的model.即$detail
    $detail->_user = 1231; // 這樣才算給model(即$detail)賦值
    $detail->price; 

    你可以嘗試把getGoodsDetail改成,不用ThinkORM,沒(méi)做測(cè)試驗(yàn)證

    public function getGoodsDetail($goods_id)
     try {
    
          $detail =$this->where(['sku'=>$goods_id])->withoutField('state,status_id,created_at,,created_at')->find();
          $detail->_user = $this->_user;
    
          return $detail;
    
      } catch (Exception $e) {
    
           return json(['code'=>-1,'data'=>null,'msg'=>'服務(wù)異常,請(qǐng)聯(lián)系管理員處理!']);
    
      }
    }
    // 控制器
    $goods = new GoodsModel();
    $goods->_user = 1231;
    $detail = $goods->getGoodsDetail($goods_id);
    echo $detail->price;

    下次問(wèn)問(wèn)題盡量貼全代碼,不要弄得語(yǔ)焉不詳,溝通起來(lái)累得不行,本來(lái)幾分鐘的事情,浪費(fèi)大家那么多時(shí)間

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??