2016-04-24 7 views
2

отношения в модели JobLaravel "внешнего ключа не выполняется"

public function account() 
{ 
    return $this->belongsTo(EbayAccount::class, 'id', 'account_id'); 
} 

отношения в EbayAccount

public function jobs() 
{ 
    return $this->hasMany(Job::class, 'account_id', 'id'); 
} 

основной код // что работа

 $job = new Job(); 
     $job->account_id = $acc->id; 
     $job->action = 'getOrders'; 
     $job->days = 30; 
     $job->save(); 

// что не работает

 Job::create([ 
     'account_id' => $acc->id, 
     'action' => 'getOrders', 
     'days' => 30 
    ]); 

// ошибка 'account_ID' ограничение внешнего ключа не удается

создать таблицу заданий

$table->integer('account_id')->unsigned()->index(); 
$table->foreign('account_id')->references('id')->on('ebay_accounts')->onDelete('cascade'); 

shchema дб enter image description here

writed

protected $fillable = [ 
     'account_id','action', 'priority', 'pagination', 'p2', 'p3', 'days','day_start', 'day_end', 'done' 
    ]; 
+0

Дайте схему ваших столов! – BeS

ответ

0

Я думаю, что проблема в вашей модели «Работа». Установили ли вы $fillable в своей модели заданий. Попробуйте добавить «account_ID, действие, дни» в $fillable массив как это:

protected $fillable = ['account_id', 'action', 'days']; 

Это позволит массовое присваивание в вашу базу данных для модели. https://laravel.com/docs/5.2/eloquent#mass-assignment

+0

alredy atited protected $ fillable = [ 'account_id', 'action', 'priority', 'pagination', 'p2', 'p3', 'days', 'day_start', 'day_end', 'done' ]; – Vilintritenmert

+0

У вас такая же проблема ... Вы решили? – general666

+0

нет, просто используйте $ job = new Job(); $ Job-> Save(); – Vilintritenmert

Смежные вопросы