Dodaowanie danych z jednej tabeli do drugiej - laravel

0

Witam. W jaki sposób w laravel za pomocą eloquent wyciągnąć dane z jednej tabeli i wstawić do drugiej? Zrobiłem taki skrypt:

		$tabela1= Tabela1::wherenick(Auth::user()->name)->get();
			Tabela2:create($tabela1->get());

Problem w tym, ze orm nie widzi pól i wyrzuca komunikat o pustych polach. Jesli dam return $tabela1 wyswietlaja mi sie tablica z prawidlowymi polami

0

$tabela1 = Tabela1::wherenick(Auth::user()->name)->get();
foreach ($tabela1 as $tabela1s)
{
Tabela2::create(['produkt'=>$tabela1s['produkt'], 'cena'=>$tabela1s['cena'], 'ilosc'=>$tabela1s['ilosc'], 'nick'=>Auth::user()->name]);
}
Zrobiłem to w ten sposób. Tabele posiadają te same pola, to fakt, z tą różnicą że w drugiej mamy klucz obcy na nick użytkownika połączony z nazwą użytkownika z tabeli users, tak aby móc później wyświetlać odpowiednie pola z tabeli users, bez tworzenia następnego zbędnego zapytania.

0

Myślę, że gdzieś tutaj popełniłeś błąd projektowy jeżeli chodzi o schemat tabeli bazy danych. Nie powinieneś tworzyć kluczy obcych na login użytkownika, ale na jego ID.

Powiedz co dokładnie chcesz osiągnąć bo wydaje mi się, że można by było to zrobić inaczej - bez konieczności kopiowania danych z jednej tabeli do drugiej. W takiej sytuacji dane zostają zdublowane, a tego się nie powinno robić, chyba że masz jakiś dobry powód :) Hasło do poczytania: normalizacja baz danych.

0

Chcę wykonać tabelę pośredniczącą, gdzie dane będą dodawane i usuwane po jakimś czasie, tzw koszyk sklepu. Czytałem o normalizacji danych, i w tym przypadku dubluję dane, fakt lecz na jakiś czas, po czym trafiają do tabeli kupione i tam pozostają. Nie chcę tych produktów robić w sesji. Czy jest na to jakiś lepszy sposób ?

2

Do koszyka potrzebujesz wrzucić jedynie id produktu, ilość oraz ewentualnie cenę - nic więcej.

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