Je suis nouveau à Laravel. J'ai précédemment créé la table users
. employment
La table a été créée dans les migrations. Comme la prochaine migration, j'ai modifier users
tableau pour ajouter job_id
dans employment
table à users
tableau. Lorsque j'exécute des migrations, cela donne une erreur ci-dessus.(errno: 150 "La contrainte de clé étrangère est incorrectement formée")
Note: Je dois donner job_id
dans le tableau employment
au tableau users
comme job_id
. soumya est le nom de ma base de données
Lorsque j'exécute des migrations sans la contrainte de clé étrangère, cela fonctionne parfaitement.
Migations: table d'emploi
public function up()
{
Schema::create('employment', function (Blueprint $table) {
$table->increments('job_id');
$table->string('job_title');
$table->string('job_description')->nullable()->default(NULL);
$table->string('slug')->unique();
$table->timestamps();
});
}
public function down()
{
Schema::drop('employment');
}
Migrations modifiant users
Table
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->integer('job_id')->after('deleted');
$table->foreign('job_id')->references('job_id')->on('employment');
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropForeign('users_job_id_foreign');
$table->dropColumn('job_id');
});
}
l'erreur est purement liée à mysql, pas à php ni laravel, https://stackoverflow.com/search?q=Foreign+key+contraint+is+incorrectly+formed, une fois que vous avez la cause de l'erreur dans mysql le modifier du côté php sera une paix de gâteau. – hassan
Copie possible de [Migration: Impossible d'ajouter une contrainte de clé étrangère dans laravel] (https://stackoverflow.com/questions/22615926/migration-cannot-add-foreign-key-constraint-in-laravel) – hassan
Essayez de changer cela ' $ table-> entier ('job_id') -> après ('deleted'); 'à ce' $ table-> unsignedInteger ('job_id') -> après ('deleted'); ' – Maraboc