Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][Laravel]Walidacja z uwzględnieniem zmian.
Generic
post
Post #1





Grupa: Zarejestrowani
Postów: 224
Pomógł: 0
Dołączył: 31.10.2012

Ostrzeżenie: (10%)
X----


Pracuję we freamworku laravel, ale nie znalazłem nigdzie w jaki sposób można za jego pomocą ustrzec się przed sytuacjami, w której użytkownik próbuje dodać podmienione dane. Przykładowo za pomocą inspect zmienia rozmiar lub id produktu. Jeżeli się mylę to zwracam honor i prosiłbym o podzielenie się linkiem do rozwiązania. Przy okazji napisałem walidację działającą na prostych instrukcjach. Chciałbym poznać waszą opinie na temat poniższego rozwiązania i ewentualnie co przydałoby się poprawić.
  1. public function create(Request $request, $id)
  2. {
  3. // Request validation
  4.  
  5. $size = $request->size;
  6.  
  7. if($size != null) {
  8. $validate_product = Product::where('id', $id)->get();
  9. $validate_size = ProductSize::whereHas('availableSizes', function ($query) use ($id, $size) {
  10. $query->where('size', '=', $size)->where('product_id', '=', $id);
  11. })->get();
  12.  
  13. if($validate_product->count() > 0 && $validate_size->count() > 0) {
  14. $validation = true;
  15. } else {
  16. $validation = false;}
  17. } else {
  18. $validate_product = Product::where('id', $id)->get();
  19. $validate_size = ProductSize::whereHas('availableSizes', function ($query) use ($id) {
  20. $query->where('product_id', '=', $id);
  21. })->get();
  22. if($validate_product->count() > 0 && $validate_size->count() == 0) {
  23. $validation = true;
  24. } else {
  25. $validation = false;}
  26. }
  27.  
  28. if($validation == true) {
  29.  
  30. foreach($validate_product as $product)
  31.  
  32. Cart::add(array(
  33. 'id' => $product['id'].$request->size,
  34. 'name' => $product['title'],
  35. 'price' => $product['price'],
  36. 'quantity' => $request->quantity,
  37. 'attributes' => array(
  38. 'thumbnail' => $product['img_1'],
  39. 'size' => $request->size
  40. )
  41. ));
  42.  
  43. return back();
  44. } else {
  45. return back()->with('error', 'Wystąpił problem, spróbuj ponownie.');
  46. }
  47. }


Ten post edytował Generic 3.02.2019, 19:30:03
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 09:04