Ich habe einen Controller (PromoCode_Controller), der eine Erweiterung von PageController ist. Wenn ich eine Aktion abfange, möchte ich, dass die Seite zurück zu der Seite umgeleitet wird, von der sie stammt. Ich habe derzeit $this->redirectBack()
eingerichtet, aber es wird nicht gefeuert ...Silverstripe: Seite Controller Redirect Zurück funktioniert nicht
Ich habe den Page_Controller in meiner 'config.yml' Datei definiert:
Page_Controller:
extensions:
- PromoCode_Controller
Der Controller sieht aus, als solche:
<?php
class PromoCode_Controller extends Extension {
private static $allowed_actions = array(
'DisplayCodes',
'DeleteCode'
);
public function DisplayCodes() {
//Display users promo codes
$arrayList = ArrayList::create();
$codes = PromoCode::get()->filter(array(
"OwnerID" => Member::currentUserID(),
));
foreach($codes as $code) {
$arrayList->push($code);
}
return $arrayList;
}
public function DeleteCode() {
$codeID = $this->owner->request->param("ID");
//if($codeID && $code = PromoCode::get()->byID($codeID)) {
// $code->delete();
//}
echo $codeID;
$this->redirectBack();
return $this;
}
}
Ich habe einen Link in meiner Vorlage, um den Code aus der DB zu löschen. Wenn ich auf den Link klicke, wird die Variable $ codeID auf einer leeren weißen Seite ausgegeben, aber die Weiterleitung wird nicht ausgelöst.
Kann jemand aufzeigen, wo ich falsch liege?
Wahrscheinlich die 'echo $ codeID;' verhindert Ihre Weiterleitung. Da Header bereits gesendet werden. – Darren
@Darren danke für die Antwort. Ich habe es einfach dort entfernt und sehe immer noch das gleiche Problem. – Dallby