ジョブを作成するためにサブミット(保存)ボタンをクリックすると、例外が発生します。user_nameフィールドはすでにジョブ.create.bladeビューフォーム)SQLSTATE [23000]:Laravelでの整合性制約違反
修正のためにどこで修正することができますか教えてください。おかげさまで
(3/3)QueryException
SQLSTATE [23000]:整合性制約違反:1452は、子行を追加したり、 更新することはできません:外部キー制約が失敗する(
admin-db
を。jobs
、 CONSTRAINTjobs_customer_name_foreign
外国キー(customer_name
) 参考資料customers
(customer_name
))(SQL:に挿入 (user_name
、customer_name
、job_place
、job_type
、note_1
、time_used
、updated_at
、created_at
)値(ジョン、1、支店、 Domene OG Webhotell、ASDF、2017年10月8日午後12時23分40秒、2017から10 -08 午後12時二十三分40秒))
timestamp_create_users_table.php
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id')->unsigned();
$table->string('name')->index();
$table->string('email');
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
timestamp_create_customers_table.php
public function up()
{
Schema::create('customers', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->integer('id')->unsigned();
$table->string('customer_name')->index();
$table->string('customer_email');
$table->timestamps();
$table->softDeletes();
});
}
timestamp_create_jobs_table.php
public function up()
{
Schema::create('jobs', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id')->unsigned();
$table->string('user_name')->index();
$table->string('customer_name')->index();
$table->string('job_place');
$table->string('job_type');
$table->string('note_1');
$table->time('time_used')->nullable();
$table->timestamps();
$table->softDeletes();
$table->foreign('user_name')->nullable()->references('name')->on('users')->onDelete('cascade');
$table->foreign('customer_name')->nullable()->references('customer_name')->on('customers')->onDelete('cascade');
});
}
モデルの関係は、で定義:Customer.ph:Job.php
public function users()
{
return $this->belongsTo(User::class);
}
public function customers()
{
return $this->belongsTo(Customer::class);
}
モデルの関係は、で定義します問題はPluckの方法に使用していた
P
public function jobs()
{
return $this->hasMany(Job::class);
}