Laravel, proste obliczenie w kontrolerze przed dodaniem do bazy

Laravel, proste obliczenie w kontrolerze przed dodaniem do bazy
M2
  • Rejestracja:ponad 7 lat
  • Ostatnio:około rok
  • Postów:362
0

Witam, jak w Laravelu, przed dodaniem do bazy zrobić małe obliczenie

Mam taki uproszczony kod:

Kopiuj
public function store( BuyRequest $request){
        $buy = new Buy;
        $buy -> id_user = $request -> id_user;
        $buy -> id_product = $request -> id_product;
        $buy -> title = $request -> title;
        $buy -> price = $request -> price;
        $buy -> shipp = $request -> shipp;
        $buy -> total_price = ....
        $buy -> save();
        return redirect(url('bought', $buy -> id));
    }

W do kolumny total_price chcę dodać cenę która będzie wynikiem iloczynu ceny i ilości + wysyłkę
ilość * price + shipp
Jak można to osiągnąć?

Patryk27
Btw, lepszą nazwą jest Order (z reguły powinieneś modele nazywać od rzeczowników). Btw2 - czym jest shipp? Czyżby ship_price (a jeśli tak - dlaczego nie nazywa się ship_price?).
czysteskarpety
czysteskarpety
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
0

najlepiej umieścić pobrane wartości w zmiennych potem wykonać obliczenia i przekazać je do zapisania


M2
obliczenia wykonać w widoku i gotowy wynik przekazać do kontrolera czy w kontrolerze bezpośrednio nad funkcją store?
pol90
W funkcji store wykonaj te obliczenia.
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
1
  1. Możesz wykorzystać obserwator.
  2. Możesz nadpisać metodę save (lecz lepiej jest w takim wypadku utworzyć repozytorium).

edytowany 4x, ostatnio: Patryk27
M2
  • Rejestracja:ponad 7 lat
  • Ostatnio:około rok
  • Postów:362
0

OK, ogarnąłem jak to policzyć jednak mam problem logiczny, może ktoś z Was będzie wiedział.
Mam widok który wyświetla dany produkt, przekazuję mu dane z tabeli produktów, do wyświetlenia jego konkretnych danych i z tabeli wysyłki, do wyświetlenia opcji wysyłki. Opcję wysyłki wyświetlam w taki sposób:

Kopiuj
@foreach( $shipp as $shipp )
           <option>{{ $shipp -> title }} ( {{ $shipp -> price }} zł )</option>
@endforeach

Selektem, w opcji jest nazwa i w nawiasie cena danej opcji wysyłki. Do obliczeń potrzebuję ceny wybranej opcji i teraz w jaki sposób "wyciągnąć" cenę wybranej opcji tak abym dalej mógł ją przekazać do kontrolera lub dodać do bazy?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.