Laravel 4-多对多-透视表未更新
向数据库添加新作业时,我没有收到明显错误 我的行业工作进入了jobs表,但与join表中的部门的关系却毫无意义。我只是看不出我错在哪里 联接表 部门/行业工作 部门id 行业工作id 部门 身份证件 分部名称 行业工作岗位 身份证件 职位 模型 Division.phpLaravel 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
<?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);
}