J'ai ce fichier de migration
Schema::create('table_one', function(Blueprint $table)
{
$table->increments('id');
$table->string('name');
$table->integer('table_two_id')->unsigned();
$table->foreign('table_two_id')->references('id')->on('table_two');
$table->timestamps();
});
et je veux mettre à jour pour le faire -> onDelete ('cascade');
$table->foreign('table_two_id')->references('id')->on('table_two')->onDelete('cascade');
Quelle est la meilleure façon de procéder?
Y a-t-il quelque chose comme -> change ();
Merci
Supprimez la clé étrangère, puis ajoutez-la à nouveau et lancez migrate
public function up()
{
Schema::table('table_one', function (Blueprint $table) {
$table->dropForeign('table_two_id');
$table->foreign('table_two_id')
->references('id')
->on('table_two')
->onDelete('cascade');
});
}
Christopher K. a raison, aux Laravel docs:
Pour supprimer une clé étrangère, vous pouvez utiliser la méthode dropForeign. Les contraintes de clé étrangère utilisent la même convention d'appellation que les index. Donc, nous concaténerons le nom de la table et les colonnes de la contrainte, puis nous ajouterons le nom "_foreign"
$table->dropForeign('posts_user_id_foreign');
Vous pouvez également passer une valeur array qui utilisera automatiquement le nom de la contrainte conventionnelle lors de la suppression:
$table->dropForeign(['user_id']);
https://laravel.com/docs/5.7/migrations#foreign-key-constraints