유명한 PHP 프레임워크인 Laravel은 우아한 구문과 강력한 기능을 자랑합니다. Laravel 11.35.0에 도입된 when()
및 unless()
메서드(Conditionable
특성의 일부)는 조건부 논리에 대한 보다 간결하고 효율적인 접근 방식을 제공하여 코드 가독성과 유지 관리성을 크게 향상시킵니다. 이 기사에서는 실제 Laravel 시나리오에서 이러한 방법을 실제로 적용하는 방법을 살펴봅니다.
사용자가 역할을 선택하는 사용자 등록 양식을 고려해 보세요. 등록 후 선택한 역할에 따라 다양한 권한이 부여됩니다.
when()
:<code class="language-php">if ($request->has('role')) { $user->assignRole($request->input('role')); }</code>
when()
와 함께:<code class="language-php">$user->when($request->has('role'), function ($user) use ($request) { $user->assignRole($request->input('role')); });</code>
when()
메소드는 역할 할당을 깔끔하게 캡슐화하여 역할이 제공될 때만 실행됩니다.
양식에서 특정 필드는 특정 조건에서만 확인이 필요할 수 있습니다. 예를 들어 이메일 필드는 사용자가 뉴스레터를 수신하는 경우에만 필수입니다.
when()
:<code class="language-php">$rules = [ 'email' => 'nullable', ]; if ($request->has('newsletter')) { $rules['email'] = 'required|email'; } $request->validate($rules);</code>
when()
와 함께:<code class="language-php">$request->when($request->has('newsletter'), function () use ($request) { $request->validate([ 'email' => 'required|email', ]); });</code>
이 깔끔한 접근 방식은 when()
조건부 유효성 검사를 활용합니다.
전자상거래에서는 유효한 쿠폰 코드가 있어야만 할인이 적용될 수 있습니다. 할인 데이터를 동적으로 병합해 보겠습니다.
when()
:<code class="language-php">$data = [ 'total_price' => $cart->totalPrice(), ]; if ($request->has('coupon_code')) { $coupon = Coupon::where('code', $request->input('coupon_code'))->first(); if ($coupon) { $data['discount'] = $coupon->discount_amount; } } return response()->json($data);</code>
when()
와 함께:<code class="language-php">$data = [ 'total_price' => $cart->totalPrice(), ]; $data = $data->when($request->has('coupon_code'), function ($data) use ($request) { $coupon = Coupon::where('code', $request->input('coupon_code'))->first(); if ($coupon) { $data['discount'] = $coupon->discount_amount; } return $data; }); return response()->json($data);</code>
이는 조건부 할인 적용에 대한 보다 간소화되고 연결 가능한 접근 방식을 보여줍니다.
unless()
을 사용하면 사용자 활성화 상태에 따라 다양한 메시지를 보내는 것이 단순화될 수 있습니다.
unless()
:<code class="language-php">if (!$user->isActive()) { return "Your account is inactive. Please contact support."; } else { return "Welcome back!"; }</code>
unless()
와 함께:<code class="language-php">return $user->unless($user->isActive(), function () { return "Your account is inactive. Please contact support."; })->otherwise(function () { return "Welcome back!"; });</code>
unless()
은 조건부 논리를 읽기 쉬운 단일 return
문으로 압축합니다.
when()
과 unless()
복잡한 시나리오의 경우 when()
과 unless()
를 결합하여 다양한 사용자 유형(관리자, 게스트 등)을 관리하고 적절한 콘텐츠를 표시하세요.
<code class="language-php">$variable->when($user->isAdmin(), function ($variable) { return $variable->adminDashboard(); })->unless($user->isAdmin(), function ($variable) { return $variable->guestDashboard(); });</code>
이 기사는 다음에서 when()
및 unless()
사용을 보여주는 유사한 간결한 예를 통해 계속됩니다.
이러한 예는 다양한 애플리케이션에 걸쳐 Laravel의 when()
및 unless()
메서드의 다양성과 우아함을 강조합니다. 이러한 방법을 활용함으로써 개발자는 더 깔끔하고 유지 관리가 용이하며 읽기 쉬운 Laravel 코드를 작성할 수 있습니다.
위 내용은 'when()' 및 'unless()' 메서드를 사용하여 Laravel에서 조건부 논리 익히기: 실제 사례의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!