Bonjour,
j'ai l'erreur suivante Call to a member function link() on a non-object in .... en suivant ce tuto.
J'ai vu à plusieurs reprises que ça pouvait venir du fait que Html n'était pas chargé dans mon controller or je n'ai cette erreur que pour le test de l'envoi de mail et j'ai bien dans AppController la ligne suivante :
public $helpers = array('Text','Form','Html','Session','Cache');
donc je ne pense pas que ça vienne de là.
voici le code où il indique l'erreur c'est mon fichier signup.ctp
<p>
<strong>Bonjour <?php echo $username ?></strong>
</p>
<p>Pour activer ce compte suivez ce lien : </p>
<p><?php echo $this->Html->link('Activer mon compte',$this->Html->url($link,true)); ?></p>
Alors c'est peut-être juste une faute de frappe mais je ne la vois pas.
Au cas ou, voici le code de mon UsersController pour la fonction signup
<?php
class UsersController extends AppController{
function signup(){
if($this->request->is('post')){
$d = $this->request->data;
$d'User']'id'] = null;
if(!empty($d'User']'password'])){
$d'User']'password'] = Security::hash($d'User']'password']);
}
if($this->User->save($d,true,array('username','password','mail'))){
$link = array('controller'=>'users','action'=>'activate',$this->User->id.'-'.md5($d'User']'password']));
App::uses('CakeEmail','Network/Email');
$mail = new CakeEmail();
$mail->from('noreply@localhost.com')
->to($d'User']'mail'])
->subject('Test :: Inscription')
->emailFormat('html')
->template('signup')
->viewVars(array('username'=>$d'User']'username'],'link'=>$link))
->send();
$this->Session->setFlash("Votre compte a bien été créé","notif");
}else{
$this->Session->setFlash("Merci de corriger vos erreurs","notif",array('type'=>'errror'));
}
}
}