2015-12-31 2 views
2

В codeigniter Я хочу инициализировать переменные каждый раз, когда я вызываю метод модели.
Я попытался использовать конструкторы, но конструкторы вызываются только тогда, когда ваша модель загружается один раз, и после этого любой вызов метода загруженного класса/модели не вызывает его конструктор снова.codeigniter инициализировать переменную при каждом вызове метода модели

+0

Пожалуйста, разместите свой код и то, что вы пробовали – Vedda

ответ

0

Я предлагаю создавать модели и создавать объекты, такие как стандартный PHP. Хотя не стандартная практика CodeIgniter, иногда использование базового PHP - лучший подход.

Например, поместить мой Foo класс в models/Foo.php:

class Foo { 
    protected $bar; 

    public function baz() { 
     echo $this->bar; 
    } 

    public function __constuct($bar) { 
     $this->bar = $bar; 
    } 
} 

Затем я require_once файл и запустить новый экземпляр всякий раз, когда мне это нужно. Это дает мне гибкость для создания новых объектов с использованием разных параметров.

Если вам нужен доступ к глобальному объекту CodeIgniter, вы всегда можете создать свойство $ci и присвоить ему значение get_instance() в начале вашего конструктора.

+0

Я хочу что-то связанное с ci не core php, anyways thanx для усилий –

0

первая мысль, которая приходит мне на ум:

Чтобы отправить эти переменные в качестве параметров модели, когда вы звоните, что модельный пример:

контроллер:

$this->load->model('Product_mdl'); 
$this->product_mdl->init(10,20,30); 

Модель (product_mdl.php)

<?php 
    class Product_mdl extends CI_Model 
    { 
    private $var1 = $var2 = $var3 = NULL; 

    public function init($value1, $value2, $value3) 
    { 
     $this->$var1 = value1; 
     $this->$var2 = value2; 
     $this->$var3 = value3; 
    } 

    // now you can call $this->varx in the remaining model code 
    ... 

    } 
+0

i can not pass переменные каждый раз, в основном я хочу переменные, которым присваивается значение по умолчанию по классу модели, и если модель выполняет некоторую логику, чем мне нужно обновлять эти переменные и возвращать значения обновлений или значения по умолчанию. –

+0

@ KaushilRambhia - эти переменные константы? или сгенерировано? – Nassim

+0

@ KaushilRambhia в этом случае, почему бы вам не создать таблицу в базе данных и сохранить эти значения в этой таблице, прочитать эти переменные из базы данных по методам вашей модели и обновить их, если вам нужно это сделать – Nassim

Смежные вопросы