2017-10-08 21 views
0

ジョブを作成するためにサブミット(保存)ボタンをクリックすると、例外が発生します。user_nameフィールドはすでにジョブ.create.bladeビューフォーム)SQLSTATE [23000]:Laravelでの整合性制約違反

修正のためにどこで修正することができますか教えてください。おかげさまで

enter image description here

(3/3)QueryException

SQLSTATE [23000]:整合性制約違反:1452は、子行を追加したり、 更新することはできません:外部キー制約が失敗する(admin-dbを。 jobs、 CONSTRAINT jobs_customer_name_foreign外国キー(customer_name) 参考資料customerscustomer_name))(SQL:に挿入 (user_namecustomer_namejob_placejob_typenote_1time_usedupdated_atcreated_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); 
} 

答えて

1

私は...自分で答えを得ました。下の は変更後もうまく機能しています。

<div class="form-group col-sm-6"> 
     {!! Form::label('customer_name', 'Customer Name:') !!} 
     {!! Form::select('customer_name', $searchdata->pluck('customer_name', 'customer_name')->all(), null, ['class' => 'form-control']) !!} 
</div> 
関連する問題