Как я могу получить переменную в модели для контроллера? - PullRequest
1 голос
/ 22 января 2020

В моей модели есть переменная $send. Я хочу использовать его на контроллере. Но я получаю ошибку. Как я могу позвонить на контроллер?

Модель:

public function register_user($send)
  {

    if($this->emailVerify()) {
      $send = array(
        'tipo' => 'Error.'
      );
      return true;

    } else {
      return false;
    }

Контроллер:

   public function __construct()
    {
        parent::__construct();

        $this->send;
    }
    public function register()
        {
            $this->load->model('users');
            $this->users->register_user();
            $this->load->view('signup', $this->send);
        }

Ответы [ 3 ]

2 голосов
/ 22 января 2020

Вы можете объявить приватную переменную, скажем send в вашей модели и сделать getter и setter в классе вашей модели инкапсулированным способом, чтобы получить значение в контроллере, как показано ниже:

Фрагмент:

Модель:

<?php

class Yourmodel extends CI_Model{
    private $send;
    function __construct() {
        parent::__construct();
        $this->send = [];
    }

    public function register_user($send){
        if($this->emailVerify()) {
          $this->send = array(
            'tipo' => 'Error.'
          );

          return true;
        } 

        return false;
    }

    public function setSendValue($value){
        $this->send = $value;
    }

    public function getSendValue(){
        return $this->send;
    }
}

Контроллер:

<?php

class Controller extends CI_Controller{
    private $send;
    public function __construct(){
        parent::__construct();
        $this->send = [];
    }

    public function register(){
        $this->load->model('users');
        if($this->users->register_user()){
            $this->send = $this->users->getSendValue();
        }
        $this->load->view('signup', $this->send);
    }
}
0 голосов
/ 22 января 2020

Модель

public function register_user($send = "")
  {

    if($this->emailVerify()) {
      $send = array(
        'tipo' => 'Error.'
      );
      return $send;

    } else {
      return false;
    }

Контроллер

public function __construct()
    {
        parent::__construct();

        $this->send;
    }
    public function register()
        {
            $this->load->model('users');
            $sendRes = $this->users->register_user(); //now you can use this $send response variable
            $this->load->view('signup', $this->send);
        }
0 голосов
/ 22 января 2020

Замените ваш модальный код и контроллер следующим образом:

  1. Вам не нужно объявлять $ send в определении режима, так как вы не передаете никакого значения при вызове того же самого модального function.
  2. модальное положительное возвращение может быть массивом $ send само по себе
  3. Поймать значение модальной функции

Modal:

public function register_user()
  {

    if($this->emailVerify()) {
      $send = array(
        'tipo' => 'Error.'
      );
      return $send;

    } else {
      return false;
    }

Контроллер:

       public function __construct()
        {
            parent::__construct();

            $this->send;
        }
        public function register()
            {
                $this->load->model('users');
                $send = $this->users->register_user();
        //print_r($send); // You will get data here
                $this->load->view('signup', $this->send);
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...