Passaggio Da Views Ad Action Multiplo

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.