Appel d'une autre action, d'une action du même contrôleur
Je suis nouveau sur YII. Comment appeler une action à partir d'une autre action du même contrôleur.
Supposons que je suis dans l'action A. j'ai besoin d'appeler une action B avec deux paramètres. Mon nom de contrôleur est Contrôleur Maître. Comment vais-je effectuer cette. S'il vous plaît dites-moi une solution. Merci à l'avance.
Mon contrôleur:
class NimsoftController extends Controller
{
public function actionStore_action($action,$data_id)
{
$model= new NimsoftUserLoginAction;
$model->user_id=Yii::app()->user->id;
$model->action=$action;//"Deleted";
$model->affected_data_id=$data_id;//"22";
$model->save();
}
public function actionSearch($id)
{
$cust_id = $id;
$criteria = new CDbCriteria();
$criteria->condition = "host_customer_id = '$cust_id'";
$details = NimsoftHost::model()->find($criteria);
$criteria2 = new CDbCriteria();
$criteria2->condition = "cust_id= '$details->host_customer_id'";
$name = MasterCustomers::model()->find($criteria2);
$dataProvider = new CActiveDataProvider('NimsoftHost', array(
'criteria' => $criteria,
'pagination'=>array('pageSize'=>40)
));
$model = new NimsoftHost();
$this->actionStore_action(array('action'=>'search', 'data_id'=>$cust_id));
$this->render('index',array(
'dataProvider' => $dataProvider,
'details' => $details,
'name' => $name->cust_name,
'model' => $model
));
}
}
- une mise à jour pour cette?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement appeler la fonction directement, ou,
vous pouvez effectuer une redirection de l'action:
ou si vous êtes dans le même contrôleur:
Mise à JOUR:
Vous êtes de passage les variables à tort:
Il devrait être de deux variables distinctes:
Cela n'a RIEN à voir avec Yii. C'est seulement fonction de base de l'appelant.
Dans le cas de votre URL ne sera pas changer et vous ne pouvez pas envoyer paramètre supplémentaire dans cette.
Si vous voulez envoyer paramètre supplémentaire, puis utilisez la redirection.
Espère que cela va vous aider..
Vous pouvez le faire de cette façon également:-
Maintenant vous voulez l'appeler à l'action Nom1 à l'intérieur de l'action Nom2.
Dans le cas de votre URL ne sera pas changer et vous ne pouvez pas envoyer paramètre supplémentaire dans cette.