Php 无法在我的laravel应用程序中操作透视表

Php 无法在我的laravel应用程序中操作透视表,php,laravel-5.4,Php,Laravel 5.4,new job.blade.php <select class="js-example-basic-multiple categories form-control" name="categories[]" style="width: 100%" multiple="multiple"> <option value=""></option> @foreach($array['categories'] as $key => $catego

new job.blade.php

<select class="js-example-basic-multiple categories  form-control" name="categories[]" style="width: 100%" multiple="multiple">
    <option value=""></option>
    @foreach($array['categories'] as $key => $category)
        <option value="{!! $category->id !!}">{!! $category->category_name !!}</option>
    @endforeach
</select>
public function categories() {
    return $this->belongsToMany('App\Category', 'category_job_post', 'category_id', 'job_post_id');
}
public function jobs() {
    return $this->belongsToMany('App\JobPost');
}
给我一个所选类别id的数组,例如:['1','2']

但当我尝试将其与pivot表同步时

$job->categories()->sync($request['categories']);
我犯了这个错误

SQLSTATE[23000]:完整性约束冲突:1452无法添加或 更新子行:外键约束失败 (
jobs\u网站
category\u job\u post
,约束
category\u job\u post\u category\u id\u foreign
外键(
category\u id
) 删除级联上的引用
category
id
category\u job\u post
category\u id
job\u post\u id
)值(11,1))

我的分类表中没有像11这样的id

JobPost.php

<select class="js-example-basic-multiple categories  form-control" name="categories[]" style="width: 100%" multiple="multiple">
    <option value=""></option>
    @foreach($array['categories'] as $key => $category)
        <option value="{!! $category->id !!}">{!! $category->category_name !!}</option>
    @endforeach
</select>
public function categories() {
    return $this->belongsToMany('App\Category', 'category_job_post', 'category_id', 'job_post_id');
}
public function jobs() {
    return $this->belongsToMany('App\JobPost');
}
Category.php

<select class="js-example-basic-multiple categories  form-control" name="categories[]" style="width: 100%" multiple="multiple">
    <option value=""></option>
    @foreach($array['categories'] as $key => $category)
        <option value="{!! $category->id !!}">{!! $category->category_name !!}</option>
    @endforeach
</select>
public function categories() {
    return $this->belongsToMany('App\Category', 'category_job_post', 'category_id', 'job_post_id');
}
public function jobs() {
    return $this->belongsToMany('App\JobPost');
}

您必须切换列名

public function categories() {
    return $this->belongsToMany('App\Category', 'category_job_post', 'job_post_id', 'category_id');
}