voici le code de la classe "form". des erreurs au niveau des input apparaissent (' Trying to get property of non-object '). Je suis débutante en php et j'ai besoin de l'aide . merci .
<?php
class Form
{
public $controller;
public function __construct($controller){
$this->controller=$controller;
// debug($this->controller->request);
}
public function input($name,$label,$options=array()){
if ($label == 'hidden') {
return '<input type="hidden" name="'.$name.'" value="'.$this->controller->request->data->$name.'" >';
}
$html='<div class="clearfix" >
<label for="input'.$name.'">'.$label.'</label>
<div class="input">';
$attr=' ';
foreach ($options as $k => $v) {
if ($k!='type') {
$attr .= " $k=\"$v\"";
}
}
if (!isset($options'type'])) {
$html .='<input type="text" id="input'.$name.'" name="'.$name.'" value="'.$this->controller->request->data->$name.'" '.$attr.'>';
}elseif ($options'type']=='textarea') {
$html .='<textarea id="input'.$name.'" name="'.$name.'"'.$attr.' >'.$this->controller->request->data->$name.'</textarea>';
}elseif ($options'type']=='checkbox') {
$html .='<input type="hidden" name="'.$name.'" value="0" ><input type="checkbox" name="'.$name.'" value="1">';
}
$html .='<div></div>';
return $html;
}
}
L'erreur est explicite Trying to get property of non-object , il te dit que tu essaye d'atteindre une propriété en objet et que ce n'est pas un objet.
Tu fais: $this->controller->request->data->$name
Et je pense plus que tu devrais faire: $this->controller->request->data$name]
l'edition de l'article se fait mais avec des erreurs au niveau de la classe form . en fait je suis entrain de suivre le tuto de AàZ et là je me bloque .
<div class="page-header">
<h1>Editer Un Article</h1>
</div>
<form action ="<?php echo Router::url('admin/posts/edit'); ?>" method="post">
<?php echo $this->Form->input('title','Titre') ;?>
<?php echo $this->Form->input('slug','Url') ;?>
<?php echo $this->Form->input('id','hidden'); ?>
<?php echo $this->Form->input('content','Contenu',array('type'=>'textarea','class'=>'xxlarge','rows'=>5,'cols'=>10)); ?>
<?php echo $this->Form->input('onlin','En ligne',array('type'=>'checkbox')); ?>
<div class="actions">
<input type="submit" class="btn primary" value="Envoyer" />
</div>
</form>
Je vous remercie infinement pour votre aide. Le problème est bien resolue chers amis . djetec vous avez raison .