ich die folgende Funktion subscribe
haben zum Ziel:
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'));
}
ich manipulieren tun, um die Benutzer $ Objekt, bevor ich sie in der eigentlichen Funktion speichern, aber dies ist die einfachste kann ich mach die funktion und lass die seite noch laden und der fehler passiert noch.
Die Debug-Anweisung um die Umleitung zu überprüfen, wo es den Benutzer umgeleitet, und dass ausspuckt:
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' => ''
}
Wie Sie es nicht umleiten sehen, wo ich es erwarten. In der Tat, egal was ich in diese Redirect-Anweisung einfüge, es wird immer auf die gleiche Funktion umgeleitet, subscribe
.
Ich habe keine Ahnung, was ich falsch mache, da dieser Code mit anderen Funktionen identisch aussieht, die ich richtig funktioniere. Weiß jemand, wie man diese Weiterleitung dorthin bringt, wo ich es umleiten möchte?
'Controller :: redirect()' wird nur den Header 'Location' setzen, wenn er noch nicht gesetzt wurde, also prüfen Sie, wie' $ this-> response' aussieht. Beachten Sie auch, dass 'Controller.beforeRedirect' hier stören kann und die Antwort so ändert, dass 'redirect()' es nicht ändert. – ndm