Witam, jak jednym kliknięciem wykonać działanie które do jednej tabeli doda dane, w drugiej je zaktualizuje a z trzeciej usunie?
Dokładniej:
Mam przycisk na stronie który jest już finalizacją pewnej akcji. Po jego kliknięciu, oczywiście jest to przycisk formularza, dane z formularza muszą zostać dodane do 'tabeli1', w 'tabeli2' musi zostać zaktualizowany rekord o id przekazanym w formularzu a w 'tabeli3' rekord o danym id musi zostać usunięty. Mam nadzieję że teraz jest jaśniej :)]
Dzięki :)
Odpowiedz
Nowy wątek
Odpowiedz
W sensie w czym masz konkretnie problem?
Nikt przecież tego nie zabrania.
Konkretnie to nie wiem jak to zrobić. -
michalos25
2018-02-12 17:50
Nie wiesz co konkretniej zrobić? Twoje pytanie jest zbyt skomplikowane, aby od razu odpowiedzieć. Wypunktuj co chcesz zrobić i dlaczego. -
Patryk27
2018-02-12 17:51
- Chcę dodać dane do tabeli 1 ponieważ będzie to tabela ostateczna, produkt został kupiony
- Z tabeli 2 chcę usunąć dane ponieważ była to tabela tymczasowa, transakcja nie została jeszcze ukończona
- Tabelę 3 chcę zaktualizować, dokładnie kolumnę "ilość". Od obecnej ilości odjąć ilość jak została kupiona.
No to lecimy po kolei.
Czy wiesz jak dodawać dane do tabel?
tak -
michalos25
2018-02-12 18:01
Czy wiesz jak usuwać dane z tabel? -
Patryk27
2018-02-12 18:23
Tak -
michalos25
2018-02-12 18:41
Czy zatem wiesz też jak aktualizować dane w tabelach? ;-) -
Patryk27
2018-02-12 18:54
tak -
michalos25
2018-02-12 18:56
Zatem którego podpunktu, spośród trzech, które wymieniłeś, nie potrafisz zrobić? :-) -
Patryk27
2018-02-12 19:09
Nikt nie broni Ci przecież zrobić wszystkiego w jednej metodzie - to nie jest tak, że akcje bazodanowe są sprzężone z nazwą metody w kontrolerze ;-)
edytowany 1x, ostatnio: Patryk27,
OK, rozumiałem :D teraz jeszcze jak przekierować trasę z formularza np w przypadku usunięcia. Mam taki kod:
w kontrolerze:
public function deleteuser($id){
User::where('id', $id)
->delete();
return redirect() -> back();
}
w blade:
<form action="{{ url('delete', $user->id) }}" method="post" id="delete-form-{{$user->id}}" style="display: none;">
{{ csrf_field() }}
{{ method_field('DELETE') }}
</form>
<a href="" onclick="
if(confirm('Czy na pewno chcesz usunąć tego użytkownika?')){
event.preventDefault();
document.getElementById('delete-form-{{$user->id}}').submit();
}else{
event.preventDefault();
}">
<button class="btn btn-danger users">Usuń</button>
</a>
w route:
Route::get('/delete/{id}', 'AccountCont[email protected]');
po wykonaniu otrzymuję:
No message
kiedy skieruje formularz na:
<form action="{{ route('account.destroy', $user->id) }}" method="post"
wszystko jest ok.
Nie rób redirect()->back()
, tylko redirect(route('foo.bar'))
? ;-)
Btw:
<form onsubmit="confirm('Czy na pewno chcesz to zrobić?')">
...
</form>
to niestety nie pomaga -
michalos25
2018-02-13 17:07
Liczba odpowiedzi na stronę