最优雅的方式来创建具有两个引用的实体而不使用批量赋值

时间:2017-05-05 13:45:57

标签: laravel eloquent

我有以下实体设置(用户,评级,发布)

  • 用户有很多帖子
  • 用户有很多评分
  • 帖子有很多评分
  • 帖子属于用户
  • 评级属于用户
  • 评级属于帖子

我正在寻找一种创造新评级的好方法。通常对于帖子,例如我会做类似的事情:

Auth::user()->posts()->create(...);

确保为用户提供正确的引用。但是,现在我想要包含两个对象。我不想允许大量分配id - 例如。

Auth::user()->ratings()->create(['value' => 1, 'post_id' => 1, ...])

$post->ratings()->create(['value' => 1, 'user_id' => 1, ...])

我也不想手动设置所有内容,因为它会使代码"不干净"

$rating = new Rating;
$rating->user = Auth::user();
$rating->post = $post; 
$rating->value = 1;
$rating->save();

有没有办法让所有这些内联?

0 个答案:

没有答案