Основи на базата данни
Laravel прави процеса на свързване към базата данни и изпълнение на заявки много лесен. Настройките на базата данни се съхраняват във файла config/database.php. Тук можете да посочите всички връзки към базата данни, които използвате, както и да посочите коя ще се използва по подразбиране. Примери за настройка на всички възможни типове връзки са в същия файл.
В момента Laravel поддържа 4 СУБД: MySQL, Postgres, SQLite и SQL Server.
Разделете четенето и писането
Понякога може да се наложи да използвате една връзка за заявка SELECT и друга за заявки INSERT, UPDATE и DELETE. Laravel прави този процес възможно най-лесен, независимо дали използвате необработени заявки като DB::select(), Query Builder или Eloquent ORM.
Помислете за примерна конфигурация:
Обърнете внимание, че към масива с настройки са добавени два ключа: четене и писане. И двата съдържат един ключ: хост. Останалите настройки за двете операции са еднакви и са взети от масива mysql. Ако трябва да промените други настройки (не само хост), просто добавете други ключове за четене и запис, което ще презапише същите настройки в основния масив. Така че 192.168.1.1 ще се използва за четене и 192.168.1.2 за запис. Останалите настройки са същите.
Изпълнение на заявки
След като настроите връзка с база данни, можете да правите заявки, като използвате фасадата на DB.
Изпълнение на SELECT заявка
Методът select винаги връща масив от резултати.
Изпълнение на INSERT заявка
Изпълнение на заявка UPDATE
Изпълнение на заявка DELETE
Забележка: заявките за актуализиране и изтриване връщат броя на засегнатите редове.
Извършване на различен тип заявка
Отговаря наизпълнение на заявка
Можете да добавите свой собствен манипулатор, който се извиква, когато се изпълни следващата заявка, като използвате метода DB::listen:
Транзакции
За да изпълнявате заявки в рамките на една транзакция, използвайте метода на транзакция:
Забележка: Всяка грешка, получена при изпълнение на заявки за транзакция, ще отмени всички промени, причинени от нея.
Понякога ще трябва да стартирате транзакция ръчно:
Анулиране на транзакция и промени, причинени от нейното изпълнение:
Приключване и потвърждение на транзакцията:
Достъп до връзка
Когато използвате множество връзки към бази данни, можете да получите достъп до тях чрез метода DB::connection:
Можете също така да получите PDO от ниско ниво на тази връзка:
Понякога може да се наложи да се свържете отново с базата данни и можете да го направите по следния начин:
Ако трябва да прекъснете връзката с базата данни - например, за да не превишите ограничението за max_connections в базата данни, можете да използвате метода за прекъсване на връзката:
Дневник на заявките
По подразбиране Laravel записва всички SQL заявки в паметта, които се изпълняват в текущата HTTP заявка. В някои случаи обаче, като например при вмъкване на голям брой записи, това може да изисква твърде много ресурси. За да деактивирате регистрационния файл, можете да използвате метода disableQueryLog:
За да получите масив от завършени заявки, използвайте метода getQueryLog: