Używam laravel i trzeba uruchomić surowego kwerendy SQL z modelu/Repository klasyRunning surowego SQL wewnątrz Model: laravel
INSERT INTO calendar
(room_id, date, default_count, default_price)
VALUES ('1', '2017-01-02', '2', '400004')
ON DUPLICATE KEY UPDATE
default_count = VALUES(default_count), default_price = VALUES(default_price);
ex. Kiedy wstawić dane z UserRepository
$this->users->insert(['email' => '[email protected]', 'votes' => 0]);
muszę jakieś metody, aby uzyskać połączenie DB i uruchomić SQL za pomocą modelu
//Something like
$this->users->execute($sql);
Widziałem laravel ma updateOrInsert()
metody, ale muszę uruchomić to dla wielu danych zestawy naraz.
Jak uruchomić surowe zapytanie sql za pośrednictwem klasy modelu lub repozytorium?
Dzięki
aktualizowana - ROZWIĄZANIA
przeszedłem Eloquent Model Sourcecode i znalazł mogę połączenie z getConnection metoda()
$this->users->getConnection()->statement($sql);
Proszę wyjaśnić konkretny problem lub dodać dodatkowe informacje, aby dokładnie zaznaczyć, czego potrzebujesz. Jak jest napisane, trudno powiedzieć dokładnie, o co prosisz. –
@ZakariaAcharki Zaktualizowano –
Nie potrzebujesz ** tego. To, czego potrzebujesz, to złapać wyjątek i sprawdzić, czy jego kod zawiera '23000', który jest kodem dla zduplikowanego wpisania klucza. W tym momencie możesz po prostu przystąpić do aktualizacji swojego modelu.W modelu można utworzyć pojedynczą metodę, która zajmuje się wstawianiem/wychwytywaniem wyjątku/sprawdzaniem, czy kod ma wartość 23000, a następnie aktualizuje model. Możesz uniknąć pobierania połączenia, czynienia transakcji i wszystkich innych nieprzyjemnych rzeczy, które chcesz zrobić. – Mjh