我有一个用户表和帖子表 . 用户可以有很多帖子,帖子只有一个用户 . 典型的1:n关系 . 我想做的是通过用户模型插入后期数据(急切加载) . 像这个 :
User::find(1)->posts()->insert(array(
'title' => 'post 1',
'body' => 'lorem ipsum is just a dummy text'
));
这是用户模型:
class User extends \Eloquent {
protected $fillable = ['username', 'email'];
protected $table = 'users';
public function posts()
{
return $this->hasMany('Post');
}
}
这是我的帖子模型
class Post extends \Eloquent {
protected $fillable = ['title', 'user_id', 'body'];
protected $table = 'posts';
}
这是后迁移(为了支持这种关系,我将user_id设为外表)
Schema::create('posts', function(Blueprint $table)
{
$table->increments('id');
$table->integer('user_id')->references('id')->on('user');
$table->string('title');
$table->text('body');
$table->timestamps();
});
问题:插入数据但user_id = 0和timestamps = 00000000
谁会告诉我我的代码有什么问题?谢谢
1 回答
你想要的是
->save()
,而不是->insert()
. 阅读此链接:http://laravel.com/docs/eloquent#inserting-related-models->insert()
正在使用不了解你的关系的QueryBuilder,而->save()
确实(或->saveMany()
)