我已经建立了一个laravel网站,但是需要根据用户类型更改商品价格。
所以这里应该怎么做=>
if ($user->type = 'special')
我必须从数据库中获取$item->special_price
而不是$item->price
。
我展示了许多地方$item->price
。
我的问题取决于用户登录我可以覆盖我使用$item->price
到$item->special_price
的所有地方吗?
答案 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];