2016-06-13 2 views
0

(salut) tout le monde! J'utilise OpenCart version 2.2.Opencart pass variable du contrôleur au modèle

D'abord, j'ai un problème avec PHP Event Calendar, que j'essaie de développer. Donc, ma question à vous est de savoir comment puis-je passer la variable de données du contrôleur au modèle où cette variable est définie dans la requête SQL?

Je vais montrer un morceau de code.

Modèle:

<?php 
$year = ''; 
$month = ''; 
$dateYear = ($year != '') ? $year : date("Y"); 
$dateMonth = ($month != '') ? $month : date("m"); 
... 
$result = $this->db->query("SELECT * FROM " . DB_PREFIX . "product WHERE event_start = '" . $currentDate . "' AND status = 1"); 
$event_num = $result->num_rows; 

?> 

Alors, quand je choisis de menu déroulant un mois ou une année

<select name="month_dropdown" class="month_dropdown dropdown"><?php echo $get_months; ?></select> 
<select name="year_dropdown" class="year_dropdown dropdown"><?php echo $get_years; ?></select> 

Je veux juste être sélectionné mois et/ou année, puis passer la valeur au contrôleur. Après cela, les données doivent être transmises au modèle pour définir le mois sélectionné. Si je choisis le mois 10 puis

Modèle:

<?php 
$month = '10'; 
?> 

J'ai essayé de passer la hardcode variable mais il n'y a aucun résultat dans le modèle :(

Controller:

<?php 
$data['month'] = '10'; 
$data['year'] = '2017'; 
?> 

Modèle:

<?php 
if (isset($data['month'])) { 
    $month = $data['month']; 
} 
if (isset($data['year'])) { 
    $year= $data['year']; 
} 
?> 

Mais j'ai l'avis suivant:

Notice: Undefined variable: data in C:\xampp\htdocs\events\catalog\model\event_calendar\event.php on line 11 

Mais quand je hardcode le modèle mois $ = « 10 » Je reçois avec succès tous les jours pour ce mois-ci.

Merci à l'avance pour les réponses :)

Répondre

1

Essayez ci-dessous:

Voir (fichier tpl)

<select name="month_dropdown"><?php echo $your_varialbe; ?></select> 

fichier contrôleur

if(isset($this->request->post['month_dropdown'])) { 
$month_dropdown = $this->request->post['month_dropdown']; 
} else { 
$month_dropdown = 0; 
} 
$info = $this->model_catalog_product->your_method_name($month_dropdown); 

fichier modèle (en supposant utilisent le modèle - catalogue/modèle/catalogue/product.php)

public function your_method_name($your_method_name) { 
//use $your_method_name here 
} 

J'espère que cela vous aidera.

+0

Merci beaucoup! :) C'est fait! :) – tweb