无法在Laravel上插入多个标签

时间:2017-11-18 07:30:24

标签: laravel laravel-5 many-to-many laravel-eloquent

我想插入一个包含多个标签的帖子记录,所以这是我在Post @ store中的代码:

<script>
$ = jQuery;
var currentID = null,
    chatTimer = null,
    oldHtml = "";

function fetch_data() {
  $.ajax({
    url: "select.php",
    method: "POST",
    success: function(data) {
      $('#live_data').html(data);
     }
  });
}

function fetch_chat() {

  $.ajax({
    url: "fetch_chat.php",
    method: "POST",
    data: {
      id: currentID
    },
    dataType: "text",
    success: function(data) {
      $("#chatbox").show();
      $('#messages').html(data);
      $("div.area").show();
      if (oldHtml !== data) {
        $('#messages').scrollTop($('#messages')[0].scrollHeight);
      }
      oldHtml = data;
    }

  });

}

$(document).ready(function() {

 fetch_data();

  $(document).on('click', '.first_name', function() {
    currentID = $(this).data("id1");
    fetch_chat();
});



  $("#sub").click(function() {

    var text = $("#text").val();
    $.post('insert_chat.php', {
      id: currentID,
      msg: text
    }, function(data) {
      $("#messages").append(data);
      $("#text").val('');
      setInterval(fetch_chat, 500);
    });
  });

});
</script>

但它给了我一个错误$post = Post::create(array( 'title' => $request->title, 'body' => $request->body, 'user_id' => Auth::id(), )); if($post && $request->tags) { $tagNames = explode(',', $request->tags); $tagIds = []; foreach($tagNames as $tagName) { $tag = Tag::firstOrCreate(['name'=>$tagName]); if($tag) { $tagIds[] = $tag->id; } } $post->tags()->attach($tagIds); } 。当我在mysql中签入时,标签已经在那里,但我在post_tag表上找不到任何条目。这是我的帖子模型:

"Call to a member function attach() on null"

1 个答案:

答案 0 :(得分:1)

您需要在OkHttp ConnectionPool at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor(Thread.java:1205) at sun.misc.Unsafe.park(Unsafe.java:325) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2056) at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:435) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841) 模型中将hasMany作为回复。

Post

<强>更新

您应该使用public function tags() { return $this->hasMany('App\Tag'); } 而不是belongsToMany