In SQLite sind Fremdschlüsseleinschränkungen standardmäßig deaktiviert .
Wie konfiguriere ich die SQLite-Datenbankverbindung von Laravel 5.1 am besten, um Fremdschlüsseleinschränkungen zu aktivieren? Ich sehe keinen Weg, dies zu tun
['connections']['sqlite']
in
/config/database.php
.
Hier ist eine Lösung. In dem
boot()
Methode von
App\Providers\AppServiceProvider
, hinzufügen:
Danke an @RobertTrzebinski für diesen Blogbeitrag zu Laravel 4.
Sie können Fremdschlüssel auch pro Test (Datei) aktivieren, wenn die Tests tatsächlich von Tabellen mit Fremdschlüsseln abhängen.
Hier ist ein Merkmal: (z. B. tests/ForeignKeys.php
)
Vergessen Sie nicht, die Methode irgendwo in Ihrer Test-Setup-Kette auszuführen. Ich habe meine Testversion als Überschreibung zu meinem Testfall hinzugefügt: ( tests/TestCase.php
)
Danach können Sie es wie folgt zu Ihren Tests hinzufügen:
%Vor% Da ich dies nur in meinen Tests, aber in allen Tests verwenden möchte, endete ich mit einer einfachen Implementierung in der Tests\TestCase
-Klasse wie folgt:
Das funktioniert wie ein Zauber: -)
Tags und Links php sqlite laravel-5 laravel foreign-keys