【问题标题】:Laravel 5.1 testing with model relationships and factoriesLaravel 5.1 使用模型关系和工厂进行测试
【发布时间】:2015-10-21 02:01:30
【问题描述】:

目前我有 2 个模型(和测试工厂)用于:

  • 应用\用户
  • 应用\发布

我查看了有关具有关系的测试工厂的文档,但没有针对单个实例专门显示任何内容。我现在拥有的是:

$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()

我可能在这里遗漏了一些小东西。我怎样才能让它工作?

【问题讨论】:

    标签: php laravel laravel-5 phpunit eloquent


    【解决方案1】:

    $post->user() 返回关系定义,而不是相关对象。如果您需要将用户与帖子关联并保存,您需要执行以下操作:

    $user = factory(App\User::class)->create();
    $post = factory(App\Post::class)->create();
    $post->user()->associate($user);
    $post->save();
    

    【讨论】:

      猜你喜欢
      • 2017-03-21
      • 2018-06-13
      • 2021-07-08
      • 2015-08-25
      • 2016-06-25
      • 2016-10-17
      • 2015-12-02
      • 2015-12-09
      • 2018-06-09
      相关资源
      最近更新 更多