Laravel,不同用户的价格不同

时间:2018-06-07 08:26:21

标签: php laravel eloquent

我已经建立了一个laravel网站,但是需要根据用户类型更改商品价格。

所以这里应该怎么做=>

if ($user->type = 'special')

我必须从数据库中获取$item->special_price而不是$item->price

我展示了许多地方$item->price

我的问题取决于用户登录我可以覆盖我使用$item->price$item->special_price的所有地方吗?

2 个答案:

答案 0 :(得分:2)

Laravel允许您在模型上创建自定义属性

class Item extends Model {
    public function getCurrentPriceAttribute(){
        return auth()->user()->type == 'special'
          ? $this->special_price
          : $this->price
    }
}

这里我们使用auth()帮助程序来获取当前用户。我们会检查用户类型,如果它是特殊的,我们会抓取special_price如果用户不是特殊的,我们会返回“正常”price

您可以使用$item->currentPrice来获取当前用户的价格。

答案 1 :(得分:0)

$key = auth()->user()->type=='normal'||(other  user types where u need $item->price)?'price':auth()->user()->type.'_price';

$price = $item[$key];