NCP
NCP

Reputation: 81

How can i access a variable outside that function in codeigniter

I am sorry for asking this basic level question. I have fetched some data from DataBase and stored it to a variable inside a function, and wanted to get the value of that variable outside the function?

public function getemailData()
{
    $email_id_investors = $this->db
        ->select('value')
        ->get_where('common_email_settings', ['name' => investors_email])
        ->row()->value;

}

I wish to get the value of the $email_id_investors outside the function. Again I am apologizing for this basic question

Database table name - common_email_settings

fields are Id, title, name, value

1 Greeting Mail, greeting_email ,[email protected]

2 Loan Service Mail, loan_service_email ,[email protected]

3 Processing Mail, processing_email ,[email protected]

Upvotes: 0

Views: 396

Answers (3)

NCP
NCP

Reputation: 81

function getemailData($name)
{
    
    $email_id_investors = $this->db
        ->get_where('common_email_settings', ['name' => $name])
        ->result()[0];
    return $email_id_investors->value;
}

This one worked for me. I have given this function in the common model page and called this on other pages.Thank you for your help

    $email = $this->common->getemailData('account_email'); -> getting data in this variable
    echo $email;
    // exit();

Upvotes: 1

Usama Bagwan
Usama Bagwan

Reputation: 41

You are not returning your variable. Try returning your variable like this,

public function getemailData()
{
    $email_id_investors = $this->db
        ->select('value')
        ->get_where('common_email_settings', ['name' => investors_email])
        ->row()->value;
     return $email_id_investors;


}

Upvotes: 1

Kinglish
Kinglish

Reputation: 23654

To strictly answer the question, you could store the value in a scoped global $this variable, though I don't know why you wouldn't just query the function and have it return a value.

public function getemailData($investors_email)
{
    $this->email_id_investors = $this->db
        ->select('value')
        ->get_where('common_email_settings', ['name' => $investors_email])
        ->row()->value;
}

// then in another function called later in the chain, you can grab it
public function doSomethingElse() {
  $investors =  $this->email_id_investors;
} 

It's probably better just to create a getter function for that variable.

This doesn't look useful given your scenario. This might be useful if the variable you're storing is something processor intensive (and you're using $this like a cache), you need to access it in multiple functions called during a given state, and you don't want to rewrite your function chain to accept this parameter (so as to pass it along). However, that is a clear sign you need to refactor your logic and make it more flexible (pass object or arrays rather than single variables for example).

Upvotes: 2

Related Questions