как передать значение в функцию модели в коде воспламенителя - PullRequest
0 голосов
/ 12 июля 2011

Я хочу передать значение идентификатора пользователя в переменной $ userID, функции в классе Model Clientmodel.Функция get_username (), теперь в модели я должен определить эту функцию, чтобы принимать переменную в качестве параметра?так .. get_username ($ userID)?Просто хотите узнать, каков рекомендуемый способ воспламенения кода?

Спасибо!

tariq

Ответы [ 2 ]

3 голосов
/ 12 июля 2011

Это действительно зависит от того, для чего вы используете модель. В большинстве случаев имеет смысл иметь параметр для метода и использовать его каждый раз:

// Model
function get_username($userID)
{
    // do something with $userID
}

// Controller
$this->some_model->get_username($some_id);

С другой стороны, иногда имеет смысл для модели быть "с состоянием" - есть ли у вас one userID на контроллер? Будет ли это больше, чем один? Вам нужен идентификатор пользователя в большом количестве методов этой модели? Тогда, возможно, вместо этого это будет иметь смысл:

// Model
function set_userid($userID)
{
    $this->userID = $userID;
}

function get_username()
{
    // do something with $this->userID
}

// Controller
$this->some_model->set_userid( $some_id );
$this->some_model->get_username();

В других случаях у вас может быть один идентификатор пользователя, который вы планируете использовать снова и снова, но иногда вам нужно использовать другое значение, то есть когда в игру вступают аргументы по умолчанию:

// Model
function set_userid($userID)
{
    $this->userID = $userID;
}

function get_username( $userID = NULL )
{
    if( $userID === NULL ) $userID = $this->userID;
    // do something with $userID (not $this->userID)
}


// Controller
$this->some_model->set_userid( $some_id );
$this->some_model->get_username();
2 голосов
/ 12 июля 2011

Решение никак не связано с Codeigniter, это просто базовый PHP.Ваша модель - класс , а get_username() - это функция , которая принимает аргументы .

Самый простой способ сделать это это:

// Model
function get_username($userID)
{
    // do something with $userID
}

// Controller
$this->some_model->get_username($some_id);

Убедитесь, что вы прочитали о аргументах по умолчанию , чтобы вы могли решить, что делать, если $userID не передано (вам может не потребоваться значение по умолчанию здесь), и сделатьобязательно убедитесь, что значение действительно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...