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.