簡體   English   中英

將數組傳遞給控制器​​以保存多對多關系

[英]Passing Array to controller for saving in many-to-many relationship

我正在嘗試允許我的用戶將標簽添加到已提交的職位發布中。

為此,我正在使用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

簡而言之,Laravel不接受$ _POST ['tokenfield']

在JAVA上不是很好,但是

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

不是這個意思是

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

糾正我,如果我錯了,但是對我來說,這似乎是控制器找不到發布數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM