2014-08-27 23 views
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

回答

0

简单地说Laravel不接受$ _ POST [ 'tokenfield']

在JAVA没有那么大,但

var tokenfield = new Array(); 
    $(".skills").each(function() { 
    tokenfield.push($(this).val()); 
    }); 

AINT这意味着是

var tokenfield = new Array(
    $(".skills").each(function() { 
    tokenfield.push($(this).val()); 
    })); 

纠正我,如果我错了,但对我来说,这看起来像控制器不能找到发布数据

相关问题