ProductController.php 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Requests\Product\StoreProductRequest;
  4. use App\Http\Requests\Product\UpdateProductRequest;
  5. use App\Models\Product;
  6. use Inertia\Inertia;
  7. class ProductController extends Controller
  8. {
  9. /**
  10. * Display a listing of the resource.
  11. *
  12. * @return \Illuminate\Http\Response
  13. */
  14. public function index()
  15. {
  16. return inertia('Products/Index', [
  17. 'initialSearch' => request('search'),
  18. 'products' => Product::filter(request()->only('search'))
  19. ->latest()
  20. ->paginate(10)
  21. ->withQueryString()
  22. ->through(fn($product) => [
  23. 'id' => $product->id,
  24. 'number' => $product->number,
  25. 'name' => $product->name,
  26. 'unit' => $product->unit
  27. ])
  28. ]);
  29. }
  30. /**
  31. * Show the form for creating a new resource.
  32. *
  33. * @return \Illuminate\Http\Response
  34. */
  35. public function create()
  36. {
  37. return inertia('Products/Create', [
  38. 'number' => 'PDK' . now()->format('YmdHis')
  39. ]);
  40. }
  41. /**
  42. * Store a newly created resource in storage.
  43. *
  44. * @param \Illuminate\Http\Request $request
  45. * @return \Illuminate\Http\Response
  46. */
  47. public function store(StoreProductRequest $request)
  48. {
  49. Product::create($request->validated());
  50. return back()->with('success', __('messages.success.store.product'));
  51. }
  52. /**
  53. * Display the specified resource.
  54. *
  55. * @param Product $product
  56. * @return \Illuminate\Http\Response
  57. */
  58. public function show(Product $product)
  59. {
  60. //
  61. }
  62. /**
  63. * Show the form for editing the specified resource.
  64. *
  65. * @param Product $product
  66. * @return \Illuminate\Http\Response
  67. */
  68. public function edit(Product $product)
  69. {
  70. return inertia('Products/Edit', compact('product'));
  71. }
  72. /**
  73. * Update the specified resource in storage.
  74. *
  75. * @param \Illuminate\Http\Request $request
  76. * @param Product $product
  77. * @return \Illuminate\Http\Response
  78. */
  79. public function update(UpdateProductRequest $request, Product $product)
  80. {
  81. $product->update($request->validated());
  82. return back()->with('success', __('messages.success.update.product'));
  83. }
  84. /**
  85. * Remove the specified resource from storage.
  86. *
  87. * @param Product $product
  88. * @return \Illuminate\Http\Response
  89. */
  90. public function destroy(Product $product)
  91. {
  92. $product->delete();
  93. return to_route('products.index')->with('success', __('messages.success.destroy.product'));
  94. }
  95. }