Yii Framework Forum: Delete, Errore 400 - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Delete, Errore 400 Rate Topic: -----

#1 User is offline   ggs 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 06-August 13

Posted 06 August 2013 - 07:35 AM

Ho da poco iniziato lo sviluppo di un gestionale, è da un po' che sbatto la testa su questo problema e non so a che santo votarmi.
Mi spiego.

Per l'azione di delete volevo usare un pannello modale preso da yiiboster

e il mio codice è del tipo

        $url = CController::createUrl("delete", array("id"=>$model->user_id));
	$this->widget('bootstrap.widgets.TbButton', array(
		'label'=>'Confirm Modal',
		'type'=>'warning',
		'htmlOptions'=>array(
			'onclick'=>'js:bootbox.confirm("Are you sure?",
			function(confirmed){
                if(confirmed) {
                   window.location = "'.$url.'";
                }
             })'
		),
	));


Il problema mi è chiaro, in questo modo sto generando una richiesta in GET anziché in POST, e per questo ottengo "Error 400,Your request is invalid."
Come posso fare?
0

#2 User is offline   messema 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 43
  • Joined: 16-May 12

Posted 07 August 2013 - 02:07 AM

Perchè alla conferma fai un window.location ?

Hai inserito il consenso nel metodo accessRules() all'action che dovrà cancellarti il record?
0

#3 User is offline   ggs 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 06-August 13

Posted 08 August 2013 - 08:04 AM

grazie di aver risposto ;)

quote name='messema' timestamp='1375859237' post='216321']
Perchè alla conferma fai un window.location ?
[/quote]

Perché volevo usare il metodo "delete" del controller, che se accettasse richieste in GET basterebbe un redirect a user/delete/mio_id

View Postmessema, on 07 August 2013 - 02:07 AM, said:

Hai inserito il consenso nel metodo accessRules() all'action che dovrà cancellarti il record?


Intendi se nelle accesRules() del controller c'è il metodo delete? Se è così si, è come da default (ho solamente modificato il corpo del metodo in modo da effettuare un soft delete)

Per ora ho risolto inserendo una chiamata ad un metodo soft_delete(), facendo poi un redirect alla pagina admin (che nel mio caso si chiama adminP), in questo modo

$url = CController::createUrl("adminP");
	$this->widget('bootstrap.widgets.TbButton', array(
		'label'=>'Elimina',
		'type'=>'warning',
		'htmlOptions'=>array(
			'onclick'=>'js:bootbox.confirm("Sei sicuro di voler eliminare la scheda di '.$model->completeName().'?",
			function(confirmed){
                if(confirmed) {
                   "'.$model->soft_delete().'";
				   window.location = "'.$url.'";
                }
             })'
		),
	));


però, seppur funzionante, non mi sembra una scelta "elegante" perché si tratta di un compito che spetta al controller e non al model...
0

#4 User is offline   messema 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 43
  • Joined: 16-May 12

Posted 09 August 2013 - 12:45 AM

Dove ti reindirizza?
Se mettessi qualcosa del genere?

window.location.href="index.php?r=tuocontroller/tuaaction&id='.$model->id.'";


potresti pure utilizzare un CHtml::link
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users