如何在Laravel中将键值附加到factory()-> make()的结果中?

时间:2018-07-17 17:29:08

标签: laravel laravel-5

我正在写一个测试用例。

假设有一个线程模型,其中包含以下字段: user_id,标题,正文

因此,为了测试提交线程的工作,我正在这样做:

$user = factory('App\User')->create();
$thread = factory('App\Thread')->make(['user_id' => $user->id]);
$this->post('/threads', $thread->toArray());

$this->get('/thread/'.$thread->id)
            ->assertSee($thread->title)

但是我还有一个字段要与不属于线程模型的线程一起发布。

例如

community => 'some_community'

因此,在将数组发布到/threads之前,如何附加另一个字段。

如何将键值对附加到make()的结果上?

1 个答案:

答案 0 :(得分:1)

您可以使用data_set函数:

$thread = factory('App\Thread')->make(['user_id' => $user->id]);
$payload = $thread->toArray();

$this->post('/threads', data_set($payload, 'community', 'some_community'));