ciao, scusate per l’ignoranza ma sono alle prime armi. E’ possibile creare più form in una vista? e farli gestite da più action? Devo per forza creare un model assegnato ad ogni form? grazie
ciao, scusate per l’ignoranza ma sono alle prime armi. E’ possibile creare più form in una vista? e farli gestite da più action? Devo per forza creare un model assegnato ad ogni form? grazie
Il Form è un’entità a sè. Guarda, per esempio FormLogin: lo puoi utilizzare in qualsiasi vista. Però in quella vista devi rendere i campi che ti interessano. L’argomento è ampio: puoi fare in modo con un unico form si comporti in modi differenti in differenti scenari.
Per facilitare le cose vi descrivo meglio quello che intendo fare e come intendo raggiungere l’obiettivo.
Sto cercando di realizzare un ‘piccolo’ sito e-commerce dove l’utente oltre a visualizzare i prodotti può aggiungerli al carrello.
Per realizzare ciò pensavo di creare un form con un campo nascosto (id_prodotto) che esegue una semplice query.
(view)
<?php
echo CHtml::beginForm('protected/modules/shop/controllers/ProdottiController/Aggiungi','get');
?>
<?php echo CHtml::submitButton('Acquista', array('id' => 'acquista')); ?>
<?php echo '<input type="hidden" value="'.$data->getAttribute('id_prodotto').'"/>'; ?>
<?php echo CHtml::endForm(); ?>
(controller)
public function actionAggiungi()
{
$value = $_GET['id'];
if($value == "acquista"){
$id_prodotto=$data->getAttribute('id_prodotto');
$id_user=Yii::app()->user->userId;
$sql="
INSERT INTO carrello
VALUES (0,$id_user,$id_prodotto)
";
$connection=Yii::app()->db;
$command=$connection->createCommand($sql);
$rowCount=$command->execute();*/
echo $sql;
}
}
Quando tento di collegarmi al controller però mi esce il messaggio Forbidden (Accesso negato).
Cosa posso fare per risolvere il problema?
grazie
Devi abilitare l’accesso a quella particolare action dal controller. Se ci fai caso, in alto sono indicati i permessi di abilitazione per ciascuna vista. Possono andare in base all’utente o al suo ruolo.
grazie adesso ho risolto
Una volta che risolvi, sarebbe bene che pubblichi anche la soluzione per aiutare chi dovesse avere il tuo stesso problema.