我是 laravel 4 的新手,我不太清楚如何制作和保存相关模型。
表消息:id | user | message | parent
例如:
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) 回应:嘿!
Hans (4) 回复:嗨,john
Peter(2) 回复:早安。
现在我是约翰,我想将这段对话保存如下:
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;
}
}