Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 4-多对多-透视表未更新_Laravel_Laravel 4_Table Relationships - Fatal编程技术网

Laravel 4-多对多-透视表未更新

Laravel 4-多对多-透视表未更新,laravel,laravel-4,table-relationships,Laravel,Laravel 4,Table Relationships,向数据库添加新作业时,我没有收到明显错误 我的行业工作进入了jobs表,但与join表中的部门的关系却毫无意义。我只是看不出我错在哪里 联接表 部门/行业工作 部门id 行业工作id 部门 身份证件 分部名称 行业工作岗位 身份证件 职位 模型 Division.php <?php class Division extends \Eloquent { protected $table = 'divisions'; /** * Industry Jobs r

向数据库添加新作业时,我没有收到明显错误

我的行业工作进入了jobs表,但与join表中的部门的关系却毫无意义。我只是看不出我错在哪里

联接表

部门/行业工作 部门id 行业工作id

部门 身份证件 分部名称

行业工作岗位 身份证件 职位

模型

Division.php

<?php 

class Division extends \Eloquent {

    protected $table = 'divisions';

    /**
     * Industry Jobs relationship
     */

    public function industryjobs()
    {
        return $this->belongsToMany('IndustryJob');
    }


}
控制器

// Create Industry - Get (empty form - new entry)
    public function getCreateIndustryJob()
    {

        View::share('page_title', 'Create a new Industry Job Role');
        View::share('sub_page_title', 'Ex: Mechanical Technician');
        return View::make('admin/industry-jobs/create');
    }

    // Create Industry - Post 
    public function postCreateIndustryJob()
    {

        //validate user input
        $rules = array(
                'job_title' => 'Required|Min:3|Max:80'
        );

        $validation = Validator::make(Input::all(), $rules);

        If ($validation->fails())
        {
            return Redirect::to('/admin/industry-jobs/add')->withErrors($validation);
        } else {


        $industryjob = new IndustryJob;

        $industryjob->job_title = Input::get('job_title');
        $industryjob->job_description    = Input::get('job_description');
        $industryjob->job_qualifications    = Input::get('job_qualifications');

        if (isset($input['divisions'])) {
                foreach ($input['divisions'] as $divId) {
                    $div = Division::find($divId);
                    $industryjob->divisions()->save($div);
                }
            }


        $industryjob->save();

        return Redirect::to('/admin/industry-jobs')->with('message', 'Industry Job created successfully');

        }
    }
形式


行业职称(*)
相关部门
@foreach(Division::all()作为$Division)
{{$division->division_name}
@endforeach
重置
创造就业机会

您正在保存
父项
模型,因此它无法工作。在保存子模型之前,先保存父模型,因此应该是这样的:

$industryjob = new IndustryJob;
$industryjob->job_title = Input::get('job_title');
$industryjob->job_description    = Input::get('job_description');
$industryjob->job_qualifications    = Input::get('job_qualifications');
$industryjob->save();
然后使用
sync
保存相关模型,因为它是
多对多
关系,并且这些相关模型已经创建并在数据库中可用:

if (isset($input['divisions'])) {
    // Pass the array of ids to sync method
    $industryjob->divisions()->sync($input['divisions']);
}
如果您使用
foreach
循环,那么您可以使用如下内容:

foreach ($input['divisions'] as $divId) {
    $industryjob->divisions()->attach($divId);
}

查看有关Laravel网站的更多信息。

谢谢,这已经证明非常有用。最后,这是一个简单的改变$行业作业->保存()$industryjob->divisions()->同步(输入::获取('divisions');
$industryjob = new IndustryJob;
$industryjob->job_title = Input::get('job_title');
$industryjob->job_description    = Input::get('job_description');
$industryjob->job_qualifications    = Input::get('job_qualifications');
$industryjob->save();
if (isset($input['divisions'])) {
    // Pass the array of ids to sync method
    $industryjob->divisions()->sync($input['divisions']);
}
foreach ($input['divisions'] as $divId) {
    $industryjob->divisions()->attach($divId);
}