问题
I have this code here in PHP using Codeigniter framework, I can't seem to get my head around class variables in this code seems completely different to C++.
I was wondering how I can get a local variable in one class (function) method to another class method.
But not passing them as variables as I have to use a redirect function instead which cannot take variables.
The variable I want to have accessible is $record_id , i tried making it public etc does not like it.
class Submit extends 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;
}
This is the function that I want to have access the $record_id
public function success()
{
$page['page'] = 'success';
$page['record'] = $record_id;
$this->load->view('template', $page );
}
Remember - I cannot pass this as a variable to the other function as I need to use a redirect so that my URL will not screw up. Thanks
Cheers!
回答1:
use codeigniter's tiny feature called Flashdata which allows you to have temorarily store data between requests.
so your code would be
function send data{
$this->session->set_flashdata('recordid', $recordid);
}
function success{
$recordid = $this->session->flashdata('recordid');
}
got it ?
回答2:
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 );
}
}
来源:https://stackoverflow.com/questions/6885287/how-to-access-a-variable-in-a-php-class-that-is-set-by-another-function-codeign