Проверка Laravel: столбец ввода должен совпадать с адресом электронной почты зарегистрированного пользователя - PullRequest
0 голосов
/ 26 июня 2018

Я хотел убедиться, что код купона может использовать только определенный пользователь, которого я назвал бенефициаром в моей таблице купонов ( Таблица купонов ).Поэтому я использовал метод проверки laravel, согласно которому бенефициар должен быть таким же, как зарегистрированный пользователь или может называться auth()->user()->email, но я не уверен, как мне записать его в моем CouponsController.php.

Раздел купона в моем checkout.blade.php:

<form action="{{ route('coupon.store') }}" method="POST">

    <input type="text" name="coupon_code" id="coupon_code">
    <button type="submit" class="button button-plain">Apply</button>
</form>

CouponsController.php:

public function store(Request $request)
{
    $coupon = Coupon::where('code', $request->coupon_code)->first();

    if (!$coupon) {
        return redirect()->route('checkout.index')->withErrors('Invalid coupon code. Please try again.');
    }

    session()->put('coupon', [
        'name' => $coupon->code,
        'discount' => $coupon->discount(Cart::subtotal()),
        'discountrate' => $coupon->showdiscount(),
        'beneficiary' => $coupon->beneficiary,
    ]);

    $this->validate($request, [ 'beneficiary' => 'same:users,email']);

    return redirect()->route('checkout.index')->with('success_message', 'Coupon has been applied!');
}

1 Ответ

0 голосов
/ 26 июня 2018

Вы можете попробовать это

public function store(Request $request)
{
    $userEmail = Auth::user()->email; //logged in user email
    $coupon = Coupon::where('code', $request->coupon_code)->where('beneficiary',$userEmail)->first();

    if (!$coupon) {
        return redirect()->route('checkout.index')->withErrors('Invalid coupon code. Please try again.');
    }

    session()->put('coupon', [
        'name' => $coupon->code,
        'discount' => $coupon->discount(Cart::subtotal()),
        'discountrate' => $coupon->showdiscount(),
        'beneficiary' => $coupon->beneficiary,
    ]);

    return redirect()->route('checkout.index')->with('success_message', 'Coupon has been applied!');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...