控制器给model变量赋值,model里读取不到值
用的think-orm
控制器代码
$goods = new GoodsModel();
$goods->_user = 1231;
model里代码
public $_user = 321;
public function getPriceAttr($value)
{
$value = $value *$this->_user;
return $value;
}
如何将$_user赋值给model里 并读取到
webman1.4.7
然后输出什么?
我需要在model里读取到这个值,读到的为null
给详细代码吧
控制器里是这样赋值的
$goods = new GoodsModel();
$goods->_user = 1231;//赋值用户数据
$detail = $goods->getGoodsDetail($goods_id);
model里
namespace app\api\v1\model;
use think\Model;
class Goods extends Model
{
protected $name = 'skus';//定义表名
public $_user;//定义用户数据
}
商品价格,浮点型的
你能否照我上面的代码跑一下,看看输出的值?
你能否贴贴你这个getGoodsDetail的具体代码?
好像是在模型里里定义变量,就没办法夸方法读取
是用think-orm的获取读取$_user然后对价格重新计算
大哥您这个问题我解决不了,您另请高明吧
控制器代码
public function getGoodsDetail(Request $request)
{
}
模型代码
<?php
namespace app\api\v1\model;
use Exception;
use think\Model;
class Goods extends Model
{
public function getGoodsDetail($goods_id)
{
}
public function getPriceAttr($value)
{
}
user 放到初始化看看行不
getGoodsDetail($goods_id) 打印这个看看是不是模型实例的(原始)数据,如果不是 获取器是不生效的. 用动态获取器
User::withAttr('name', function($value, $data) {
return strtolower($value);
})->select();
这样的试试 . 还不行就手动吧
你在getGoodsDetail()里返回的是一个新的model,不是你上面的new GoodsModel(), $_user没赋值当然是null;
你可以尝试把getGoodsDetail改成,不用ThinkORM,没做测试验证
下次问问题尽量贴全代码,不要弄得语焉不详,沟通起来累得不行,本来几分钟的事情,浪费大家那么多时间