获取 Laravel 测试的数据工厂关系

get data Factory Relationships for Laravel Testing

根据laravel-database-testing

我是测试数据的工厂关系,我的代码是这样的

 public function test_users_can_authenticate_using_the_login_screen()
    {
        $this->seed(RoleSeeder::class);
        $data = Organization::factory()
            ->count(1)
            ->has(User::factory()->count(2), 'users')
            ->create();

        $response = $this->post('/login', [
            'email' => $data->email,
            'password' => 'password',
        ]);

        $this->assertAuthenticated();
        $response->assertRedirect(RouteServiceProvider::HOME);
    }

如何获取用户-> 电子邮件数据??,当我尝试 $data->email$data->users 时找不到?

您是否为两个模型(组织和用户)添加了关系?

如果是,那么你需要检查具体你想抓取哪个用户。因为它 returns 用户数组。

试试这个例子

$data = Organization::factory()
            ->count(1)
            ->has(User::factory()->count(2), 'users')
            ->create();
$firstUserEmail = $data->users[0]->email;