Laravel, разные цены для разных пользователей - PullRequest
0 голосов
/ 07 июня 2018

Я уже создал сайт Laravel, но есть требование, чтобы цена товара изменялась в зависимости от типа пользователя.

, вот как это должно быть =>

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

Я должен получить $item->special_price вместо $item->price из базы данных.

Есть много мест, где я показываю $item->price.

Мой вопрос в зависимости от имени пользователя: могу ли я перезаписать все места, которые я использую $item->price до $item->special_price?

Ответы [ 2 ]

0 голосов
/ 07 июня 2018
$key = auth()->user()->type=='normal'||(other  user types where u need $item->price)?'price':auth()->user()->type.'_price';

$price = $item[$key];
0 голосов
/ 07 июня 2018

Laravel позволяет вам создавать собственные атрибуты на ваших моделях

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

Здесь мы используем хелпер auth(), чтобы получить текущего пользователя.Мы проверяем тип пользователя и, если он особенный, мы выбираем special_price, если пользователь не особенный, мы возвращаем «нормальное» price.

. Вы можете использовать $item->currentPrice, чтобы получить цену затекущий пользователь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...