Ho appena iniziato con cakePHP e le cose non stanno andando così bene finora.Emissione di un collegamento ipertestuale da un controller in cakePHP
Ho un controller che gestisce la conferma delle email degli utenti. Al momento della registrazione, l'utente riceve un'e-mail con un codice di conferma in un link. A seconda del codice di conferma che danno, il controller fornisce risposte di testo diverse. Una di queste risposte include un collegamento ipertestuale per accedere.
Sto provando a utilizzare l'helper Html, ma nonostante l'ho caricato in $ helper in cima alla classe, l'ho fatto funzionare solo se poi utilizzo App :: import e quindi lo istanziamo.
Tutto sembra eccessivo semplicemente creare un collegamento ipertestuale! Quante volte devo caricare la stessa classe?
Ovunque guardo sul Web, continua a dirmi che è una cattiva idea utilizzare un helper in un controller, ma in quale altro modo dovrei ottenere il collegamento?
così ho
var $helpers = array('Html');
nella parte superiore del controller, e:
if (isset($this->User->id)) { // Check the user's entered it right
// Do some stuff to remember the user has confirmed
// This is to load the html helper - supposedly bad form, but how else do I make the link?
App::import('Helper', 'Html');
$html = new HtmlHelper();
$this->set('message', __("Your email address has been confirmed.", TRUE)." ".$html->link(__("Please log in", TRUE), array('controller' => "users", 'action' => "login")));
} else {
$this->set('message', __("Please check your mail for the correct URL to confirm your account", TRUE));
}
nel metodo confermano del controller e
<div>
<?php echo $message;?>
</div>
nella vista per l'uscita del risultante messaggio
Sicuramente sto sbagliando da qualche parte - qualcuno può spiegare come?
Aaah, ok! Questo ha un po 'più senso. Era l'idea di passare i dati completi dell'utente alla vista che non avevo ricevuto. Ho visto la vista molto più "stupida". Grazie per la buona illustrazione chiara. – Hippyjim
Ho pensato $ this-> User era come risultato della query piuttosto che un modello. Vostro diritto, dovreste fare $ user = $ this-> User-> find() quindi $ this-> set ('user', $ user), quindi l'utente sarebbe una matrice di risultati nella vista. –
Sì, ho capito che sono i dati, piuttosto che il modello: il passaggio del modello potrebbe mettere in pericolo tutti i tipi di cattivi riferimenti circolari, giusto? (per non parlare della rottura del MVC) – Hippyjim