HTML Bouton d'appel contrôleur/action
Je suis en train de créer bouton html dans Yii sur le bouton cliquez sur je veux appeler un UserController.php et Actioncreate .
Je fais comme ça ,
echo CHtml::button('Signup', array('button' => array('Users/create'))); ?>
Mais il me fait erreur suivant
htmlspecialchars() expects parameter 1 to be string, array given
C'est la trace de la pile
D:\wamp\www\yii\framework\web\helpers\CHtml.php(85)
73 */
74 public static $liveEvents = true;
75
76 /**
77 * Encodes special characters into HTML entities.
78 * The {@link CApplication::charset application charset} will be used for encoding.
79 * @param string $text data to be encoded
80 * @return string the encoded data
81 * @see http://www.php.net/manual/en/function.htmlspecialchars.php
82 */
83 public static function encode($text)
84 {
85 return htmlspecialchars($text,ENT_QUOTES,Yii::app()->charset);
86 }
87
88 /**
89 * Decodes special HTML entities back to the corresponding characters.
90 * This is the opposite of {@link encode()}.
91 * @param string $text data to be decoded
92 * @return string the decoded data
93 * @see http://www.php.net/manual/en/function.htmlspecialchars-decode.php
94 * @since 1.1.8
95 */
96 public static function decode($text)
97 {
Stack Trace
#0
+
D:\wamp\www\yii\framework\web\helpers\CHtml.php(85): htmlspecialchars(array("Users/create"), 3, "UTF-8")
#1
+
D:\wamp\www\yii\framework\web\helpers\CHtml.php(2216): CHtml::encode(array("Users/create"))
#2
+
D:\wamp\www\yii\framework\web\helpers\CHtml.php(140): CHtml::renderAttributes(array("button" => array("Users/create"), "name" => "yt1", "type" => "button", "value" => "Signup"))
#3
+
D:\wamp\www\yii\framework\web\helpers\CHtml.php(436): CHtml::tag("input", array("button" => array("Users/create"), "name" => "yt1", "type" => "button", "value" => "Signup"))
#4
–
D:\wamp\www\nurseweb\protected\views\site\login.php(50): CHtml::button("Signup", array("button" => array("Users/create")))
45 <?php echo $form->error($model,'rememberMe'); ?>
46 </div>
47
48 <div class="row buttons">
49 <?php echo CHtml::submitButton('Login');
50 echo CHtml::button('Signup', array('button' => array('Users/create'))); ?>
51 <?php $this->endWidget(); ?>
52 </div><!-- form -->
#5
+
D:\wamp\www\yii\framework\web\CBaseController.php(127): require("D:\wamp\www\nurseweb\protected\views\site\login.php")
#6
+
D:\wamp\www\yii\framework\web\CBaseController.php(96): CBaseController->renderInternal("D:\wamp\www\nurseweb\protected\views\site\login.php", array("model" => LoginForm), true)
#7
+
D:\wamp\www\yii\framework\web\CController.php(870): CBaseController->renderFile("D:\wamp\www\nurseweb\protected\views\site\login.php", array("model" => LoginForm), true)
#8
+
D:\wamp\www\yii\framework\web\CController.php(783): CController->renderPartial("login", array("model" => LoginForm), true)
#9
–
D:\wamp\www\nurseweb\protected\controllers\SiteController.php(98): CController->render("login", array("model" => LoginForm))
093 //validate user input and redirect to the previous page if valid
094 if($model->validate() && $model->login())
095 $this->redirect(Yii::app()->user->returnUrl);
096 }
097 //display the login form
098 $this->render('login',array('model'=>$model));
099 }
100
101 /**
102 * Logs out the current user and redirect to homepage.
103 */
#10
+
D:\wamp\www\yii\framework\web\actions\CInlineAction.php(50): SiteController->actionLogin()
#11
+
D:\wamp\www\yii\framework\web\CController.php(309): CInlineAction->runWithParams(array("r" => "site/login"))
#12
+
D:\wamp\www\yii\framework\web\CController.php(287): CController->runAction(CInlineAction)
#13
+
D:\wamp\www\yii\framework\web\CController.php(266): CController->runActionWithFilters(CInlineAction, array())
#14
+
D:\wamp\www\yii\framework\web\CWebApplication.php(283): CController->run("login")
#15
+
D:\wamp\www\yii\framework\web\CWebApplication.php(142): CWebApplication->runController("site/login")
#16
+
D:\wamp\www\yii\framework\base\CApplication.php(162): CWebApplication->processRequest()
#17
–
D:\wamp\www\nurseweb\index.php(13): CApplication->run()
08 defined('YII_DEBUG') or define('YII_DEBUG',true);
09 //specify how many levels of call stack should be shown in each log message
10 defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);
11
12 require_once($yii);
13 Yii::createWebApplication($config)->run();
Quelqu'un peut me dire quelle est la signification de cette erreur et aussi m'a guidé pour trouver la solution?
Vous devez vous connecter pour publier un commentaire.
La CHtml bouton() la méthode est littéralement juste un bouton, le deuxième paramètre, il accepte devrait être un tableau de paires clé/valeur, plutôt qu'un tableau de tableaux (comme vous l'avez dans votre exemple) voir CHtml::button() pour plus d'info. Une façon d'utiliser cette méthode serait par exemple;
Ce serait quelque chose de sortie:
Si vous voulez un bouton pour soumettre un formulaire, vous pouvez utiliser CHtml::submitButton() qui va soumettre le formulaire, il est contenu à l'intérieur.
Si vous voulez un bouton pour rediriger l'utilisateur vers une page distincte, sans les soumettre rien, alors je pense que la meilleure solution serait d'utiliser une image avec un lien vers une ancre, ou utiliser jQuery pour rediriger l'utilisateur une fois que le bouton a été pressé.
Si c'est le cas, voici une question avec un couple de réponses qui pourraient vous aider: Comment faire un bouton de redirection vers une autre page à l'aide de jQuery ou Javascript