Laravel 5.1 使用模型关系和工厂进行测试
Laravel 5.1 testing with model relationships and factories
目前我有 2 个模型(和测试工厂)用于:
- App\User
- App\Post
我查看了有关具有关系的测试工厂的文档,但没有专门针对单个实例显示任何内容。我现在拥有的是:
$user = factory(App\User::class)->create();
$post = factory(App\Post::class)->create();
$post->user()->save($user);
我目前收到以下 PHPUnit 错误:BadMethodCallException: Call to undefined method Illuminate\Database\Query\Builder::save()
我可能遗漏了一些小东西。我怎样才能让它工作?
$post->user() returns 关系定义,不是相关对象。如果需要将user关联到post并保存,需要做如下操作:
$user = factory(App\User::class)->create();
$post = factory(App\Post::class)->create();
$post->user()->associate($user);
$post->save();
目前我有 2 个模型(和测试工厂)用于:
- App\User
- App\Post
我查看了有关具有关系的测试工厂的文档,但没有专门针对单个实例显示任何内容。我现在拥有的是:
$user = factory(App\User::class)->create();
$post = factory(App\Post::class)->create();
$post->user()->save($user);
我目前收到以下 PHPUnit 错误:BadMethodCallException: Call to undefined method Illuminate\Database\Query\Builder::save()
我可能遗漏了一些小东西。我怎样才能让它工作?
$post->user() returns 关系定义,不是相关对象。如果需要将user关联到post并保存,需要做如下操作:
$user = factory(App\User::class)->create();
$post = factory(App\Post::class)->create();
$post->user()->associate($user);
$post->save();