wykonanie działania na wielu tabelach w Laravelu

Odpowiedz Nowy wątek
2018-02-12 17:43
0

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 :)

Pozostało 580 znaków

2018-02-12 17:49
0

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

Pozostało 580 znaków

2018-02-12 17:57
0
  1. Chcę dodać dane do tabeli 1 ponieważ będzie to tabela ostateczna, produkt został kupiony
  2. Z tabeli 2 chcę usunąć dane ponieważ była to tabela tymczasowa, transakcja nie została jeszcze ukończona
  3. Tabelę 3 chcę zaktualizować, dokładnie kolumnę "ilość". Od obecnej ilości odjąć ilość jak została kupiona.

Pozostało 580 znaków

2018-02-12 17:59
0

No to lecimy po kolei.
Czy wiesz jak dodawać dane do tabel?


Czy wiesz jak usuwać dane z tabel? - Patryk27 2018-02-12 18:23
Czy zatem wiesz też jak aktualizować dane w tabelach? ;-) - Patryk27 2018-02-12 18:54
Zatem którego podpunktu, spośród trzech, które wymieniłeś, nie potrafisz zrobić? :-) - Patryk27 2018-02-12 19:09

Pozostało 580 znaków

2018-02-12 19:14
0

Nie wiem jak połączyć to w całość i wykonać jednocześnie. Dodawanie wykonuję w funkcji store() , edycję w update() a usuwanie w destroy() a tutaj muszę to połączyć w jedno zadanie :)

Pozostało 580 znaków

2018-02-12 19:14
0

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, 2018-02-12 19:15

Pozostało 580 znaków

2018-02-13 13:42
0

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}', '[email protected]');

po wykonaniu otrzymuję:

No message

kiedy skieruje formularz na:

<form action="{{ route('account.destroy', $user->id) }}" method="post"

wszystko jest ok.

Pozostało 580 znaków

2018-02-13 13:48
0

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

Pozostało 580 znaków

2018-02-13 17:08
0

Jak teraz wygląda Twój kod i co konkretnie próbujesz osiągnąć?


Pozostało 580 znaków

2018-02-13 17:31
0

Po prostu chcę usunąć dane z bazy tylko zamiast formularz kierować na <form action="{{ route('account.destroy', $user->id) }}" method="post" chcę go przekierować na konkretną funkcję deleteuser

Pozostało 580 znaków

2018-02-13 17:41
0

W sensie nie możesz go tak przekierować (dlaczego?) czy co Cię powstrzymuje?
Obawiam się, że niestety nadal nie rozumiem, o co Ci chodzi.


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

2 użytkowników online, w tym zalogowanych: 0, gości: 0, botów: 2

Robot: MJ12bot (2x)