>source

이것은 완벽하게 작동하지만 return 문이 <p> 보기에 태그

LARAVEL 8.x

$product = Product::find($id);
if(!$product) {
  abort(419);
}
    
$value = $request->session()->get('id');
    
if ($value == $id) {
  return "You can purchase an item at a time!";
} else {
  $initial = $product->quantity;
  if ($initial > 0)  {
    $final = $initial - 1;
    $product->quantity = $final; 
    $product->save();
    $request->session()->put('id', $id);
    var_dump($value);
    var_dump($product->quantity); 
  } else {
    return  "out of stock";
  }   
}
            
return redirect()->action([ProductController::class, 'index']);

나는 그것을하는 방법을 시도했습니다. 사용할 수 있지만 @if 블레이드에 $product->quantity "재고 없음"을 표시하지만 "한 번에 항목 만 구매할 수 있습니다".

  • 답변 # 1

    방법은 다음과 같습니다.

    제공 한 컨트롤러

    $product = Product::find($id);
    if(!$product) {
      abort(419);
    }
        
    $value = $request->session()->get('id');
        
    if ($value == $id) {
      return "You can purchase an item at a time!";
    } else {
      $initial = $product->quantity;
      if ($initial > 0)  {
        $final = $initial - 1;
        $product->quantity = $final; 
        $product->save();
        $request->session()->put('id', $id);
        var_dump($value);
        var_dump($product->quantity); 
      } else {
        return  "out of stock";
      }   
    }
                
    return redirect()->route('products.index')->with(['product' => $product]);
    
    

    당신의 web route 이 같은 파일이 있습니다.

    Route::get('/products', [ProductController::class, 'index'])->name('product.index');
    
    

    그런 다음 블레이드 구성 요소에서

    <h1> {{ $product->id ?? 'No Product ID given' }} </h1>
    
    

관련 자료

  • 이전 javascript - ajax post var eventdata
  • 다음 javascript - asp net core 31을 사용하여 Ajax를 통해 컨트롤러에 객체 목록을 보내는 방법은 무엇입니까?