我有以下功能subscribe
:
public function subscribe() {
$plans = Configure::read('Stripe.american_plans');
$plans['premium_american_monthly'] = __('Premium Monthly') . ' - 4.99';
$plans['premium_american_annually'] = __('Premium Annually') . ' - 49.99';
if ($this->request->is('post')) {
$user = $this->Users->get($this->Auth->user('id'));
if ($this->Users->save($user)) {
$this->Flash->success(__('Your account has been subscribed'));
debug($this->redirect(['controller' => 'Users', 'action' => 'edit']));
die();
} else {
$this->Flash->error('User could not be subscribed.');
}
}
$this->set(compact('plans'));
}
我做操作$之前,我將它保存在實際功能的用戶對象,但是這是最簡單的,我可以使功能和頁面仍然加載和錯誤仍然發生。
周圍重定向調試語句以檢查它重定向用戶,而且吐出:
object(Cake\Http\Response) {
'status' => (int) 302,
'contentType' => 'text/html',
'headers' => [
'Content-Type' => [
(int) 0 => 'text/html; charset=UTF-8'
],
'Location' => [
(int) 0 => 'https://localhost/users/subscribe'
]
],
'file' => null,
'fileRange' => [],
'cookies' => [
'cookies go here'
]
],
'cacheDirectives' => [],
'body' => ''
}
正如你可以看到它不是重定向到那裏我希望它。事實上,無論我在重定向語句中放置什麼,它總是重定向到相同的函數subscribe
。
我不知道我在做什麼錯,因爲這段代碼看起來與其他函數的功能是一致的。有誰知道如何使這個重定向到我想要重定向的地方?
'Controller :: redirect()'只會設置'Location'頭,如果它還沒有被設置,那麼檢查'$ this-> response'是什麼樣的。還要注意'Controller.beforeRedirect'可以在這裏產生干擾並修改響應,這樣'redirect()'不會改變它。 – ndm