2014-08-27 3 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));} 

Я получаю сообщение об ошибке: Попытка получить свойство не-объекта, связанного с $ скилл> ид таким образом я ДД ($ _ POST [ 'tokenfield']); и это был результат:

array(1) { [0]=> string(33) "Window Installation, deck removal"} 

Мой вопрос: Я не создаю массив правильно или я не принимать его должным образом в контроллере? ТИА

ответ

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()); 
    })); 

поправьте меня, если я ошибаюсь, но для меня это выглядит так, что контроллер не может найти данные сообщения

Смежные вопросы