Php 插入关系模型laravel雄辩

Php 插入关系模型laravel雄辩,php,laravel,relationship,eloquent,Php,Laravel,Relationship,Eloquent,我对laravel 4的口才还不熟悉,我不太清楚如何制作和保存相关模型 表消息:id |用户|消息|家长 例如: class Message extends Eloquent { public function user(){ return $this->belongs_to('User', 'id'); } public function child(){ return $this->hasMany('Message', 'parent

我对laravel 4的口才还不熟悉,我不太清楚如何制作和保存相关模型

表消息:
id |用户|消息|家长

例如:

class Message extends Eloquent {

   public function user(){
      return $this->belongs_to('User', 'id');
   }

   public function child(){
      return $this->hasMany('Message', 'parent');
   }

   public function parent(){
      return $this->belongs_to('Message', 'id')
   }

 }
因此,如果你有一个对话,你就有一条消息,这条消息可能有也可能没有孩子或父母,并且总是有一个用户发出了这条消息。所以,如果我想用这种方式保存对话,我会怎么做

例如,我必须进行以下对话:

约翰(1)说:大家好
马克(3)回答说:
汉斯(4)回答:你好,约翰
彼得(2)回答说:早上好

现在我是john,我想将此对话保存如下:

  id  |  user  |    message    | parent
========================================
1     | 1      | Hi, All!      | NULL
2     | 3      | Hey there!    | 1
3     | 4      | Hi john       | 1
4     | 2      | Goodmorning.  | 1
我可以单独保存它们,但我认为必须有比下面更好的方法:

$parent = NULL;

foreach($messages as $message){
   $model = new Message;
      $model->user = $message['user'];
      $model->message = $message['value'];
      if(!is_null($parent)){
         $model->parent = $parent;
      }
   $model->save();
   if(is_null($parent)){
      $parent = $model->id;
   }
}

我看到的最初问题是,您说消息的父级总是它自己,您需要指定一个附加的无符号整数来关联。这里有一个例子:

public function parent(){
    return $this->belongs_to('Message', 'parent_id')
}
您还需要为孩子们使用相同的
'parent\u id'

public function children(){
    return $this->hasMany('Message', 'parent_id');
}

回顾我以前的堆栈溢出问题,我注意到我从未回答或接受过你的答案。对此我深表歉意,并感谢您的回复。我接受了你的回答。