РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
365 of 1392 menu

Метод enableForeignKeyConstraints

Метод enableForeignKeyConstraints применяется к классу Schema и позволяет включить проверку ограничений внешних ключей, которая была отключена ранее с помощью метода disableForeignKeyConstraints. Этот метод особенно полезен при выполнении массовых операций с данными, когда требуется временно отключить проверки для ускорения выполнения. Метод не принимает никаких параметров и возвращает void.

Синтаксис

<?php Schema::enableForeignKeyConstraints(); ?>

Пример

Давайте отключим проверку внешних ключей перед массовой вставкой данных, а затем снова включим её:

<?php namespace AppHttpControllers; use IlluminateSupportFacadesDB; use IlluminateSupportFacadesSchema; class OrderController extends Controller { public function importOrders() { Schema::disableForeignKeyConstraints(); DB::table('orders')->insert([ ['user_id' => 1, 'total' => 100.50], ['user_id' => 2, 'total' => 200.75], ['user_id' => 3, 'total' => 150.25], ]); Schema::enableForeignKeyConstraints(); return "Orders imported successfully"; } } ?>

Результат выполнения кода:

"Orders imported successfully"

Пример

Используем метод в миграции для включения проверок после массового обновления:

<?php use IlluminateDatabaseMigrationsMigration; use IlluminateSupportFacadesSchema; return new class extends Migration { public function up() { Schema::disableForeignKeyConstraints(); DB::table('orders') ->where('status', 'pending') ->update(['status' => 'completed']); Schema::enableForeignKeyConstraints(); } public function down() { Schema::disableForeignKeyConstraints(); DB::table('orders') ->where('status', 'completed') ->update(['status' => 'pending']); Schema::enableForeignKeyConstraints(); } }; ?>

Пример

Использование метода в транзакции для обеспечения целостности данных:

<?php namespace AppHttpControllers; use IlluminateSupportFacadesDB; use IlluminateSupportFacadesSchema; class ProductController extends Controller { public function updateCategories() { DB::transaction(function () { Schema::disableForeignKeyConstraints(); DB::table('products') ->where('category_id', 1) ->update(['category_id' => 2]); DB::table('categories') ->where('id', 1) ->delete(); Schema::enableForeignKeyConstraints(); }); return "Categories updated successfully"; } } ?>

Результат выполнения кода:

"Categories updated successfully"

Смотрите также

  • метод disableForeignKeyConstraints,
    который отключает проверку внешних ключей
  • метод create,
    который создает новую таблицу в базе данных
  • метод table,
    который позволяет изменять существующую таблицу
  • метод transaction,
    который выполняет операции в транзакции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить