Как получить доступ к переменной в классе PHP, которая установлена ​​другой функцией?Codeigniter - PullRequest
0 голосов
/ 30 июля 2011

У меня есть этот код здесь, в PHP с использованием платформы Codeigniter, я не могу понять, как переменные класса в этом коде кажутся полностью отличными от C ++.

Мне было интересно, как я могу получить локальную переменную в одном методе класса (функции) в другом методе класса.

Но не передавая их как переменные, так как вместо этого я должен использовать функцию перенаправления, которая не может принимать переменные.

Переменная, которую я хочу сделать доступной: $ record_id , я пытался сделать ее общедоступной и т. Д. Мне не нравится.

класс Submit расширяет CI_Controller {

function send_data()
{
        $record_id = $this->submit_model->create_record($completedstaffrows, $completedeventrows);

                        if ($record_id == FALSE)
                        {
                            echo "Failed to add to database";
                        }

                        //Submittal to database was successful
                        else
                        {

                            redirect('submit/success');
                        }
                        return;
                    }

Это функция, к которой я хочу получить доступ $ record_id

public function success()
{

$page['page'] = 'success';
$page['record'] = $record_id;
$this->load->view('template', $page );


}

Помните - я не могу передать это как переменную другой функции, так как мне нужно использовать перенаправление, чтобы мой URL не испортился. Спасибо

Ура!

Ответы [ 2 ]

1 голос
/ 30 июля 2011
class Submit extends CI_Controller {

    private $record_id=false;

    public function __construct(){
         if(isset($_SESSION['record_id'])){
              $this->record_id = $_SESSION['record_id'];
         }
    }

    public function send_data(){
        $this->record_id = $this->submit_model->create_record($completedstaffrows, $completedeventrows);
        $_SESSION['record_id'] = $this->record_id;
        if ($this->record_id == FALSE){
            echo "Failed to add to database";
        }
        else{
            redirect('submit/success');
        }
        return;
    }
    public function success(){

         $page['page'] = 'success';
         $page['record'] = $this->record_id;
         $this->load->view('template', $page );
    }
}
1 голос
/ 30 июля 2011

использует крошечную функцию codeigniter под названием Flashdata, которая позволяет временно хранить данные между запросами.

поэтому ваш код будет

function send data{
$this->session->set_flashdata('recordid', $recordid);
}

function success{
 $recordid =  $this->session->flashdata('recordid');
}

понял?

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