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
 
Start new topic
Odpowiedzi
Generic
post
Post #2





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

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


@viking, @markonix kiedy zaimplementowałem podesłane przez was rozwiązanie uśmiałem się dosłownie z samego z siebie. To jak w łatwy sposób można było to rozwiązać jest dla mnie niesamowite. Mam zły nawyk, kombinowania nad własnymi rozwiązaniami zapominając że pracuje we freamworku zwłaszcza kiedy nie rozumiem do końca problemu. Dziękuję, że nakierowaliście mnie na dobrą ścieżkę i przepraszam za te moje banały, ale całą wiedze czerpie na chwilę obecną tylko z internetu.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 10.10.2025 - 15:07