0
我试图让我的用户可以将标签添加到已提交的工作发布中。将数组传递给控制器以保存多对多关系
要做到这一点,我使用了bootstrap-tokenfield插件。
jQuery脚本来收集阵列,并提交:
//create a new array and push the skills on to it.
var tokenfield = new Array();
$(".skills").each(function() {
tokenfield.push($(this).val());
});
与所有使用Ajax形式的详情沿着这遂以我的控制器功能。
控制器:
//save job
$job = new Job;
$job->user_id = $this->userID;
//other fields...
$job->save();
//After job is saved iterate over tokenfield array and save to pivot table using Laravel Eloquent properties:
foreach($_POST['tokenfield'] as $val){
//only skill name is passed from form. Find id:
$skill = Skill::where('name','=', $val)->first();
if(JobSkill::create(array('job_id' => $job->id, 'skill_id' => $skill->id)))
{ return Response::json(array('success' => 200));}
我收到错误:试图获得有关$ skill-非对象>的id属性,因此我做了DD($ _ POST [ 'tokenfield']);这是结果:
array(1) { [0]=> string(33) "Window Installation, deck removal"}
我的问题是:我是不正确创建阵列还是我不在控制器正确接受它? TIA