2017-08-02 106 views
1

在我的驗收測試,我試圖發送一個JSON請求有一個cookie:如何通過標頭設置cookie?

// CartTest.php 
$response = $this->postJson(route('carts.store'), [], [ 
    'Cookie' => 'uuid='.Crypt::encrypt($cart->uuid) 
]); 

當我在控制器裏做$request->hasCookie('uuid'),我得到false

我也嘗試了不同的變化,如Set-Cookie,HTTP_SET_COOKIE等,但沒有一個似乎工作。爲了簡潔起見,我寧願傳遞postJson而不是通用的call

任何想法?謝謝

+0

您是否嘗試過HTTP_COOKIE? –

回答

0

我想我現在明白了爲什麼Laravel在其postJson方法簽名中不接受任何cookie。事實上,it's not a recommended practice首先與API交換cookie。這回答了這個問題。

0

爲什麼不試試這個?在提出要求之前:

$_COOKIE['uuid'] = Crypt::encrypt($cart->uuid); 

是的,它是大膽的。但似乎也起作用。還有other ideas