1

私は以下のような関数を持っています。条件文の分岐ごとにコードのブロックがあります。そのコードのブロックを一度呼び出してから、配列を介して参照できるようにしたいのですが、少し混乱していますこれを行う方法。関数はクラスに存在します。

function do_upload()
{
    $config['upload_path'] = 'assets/temp';
    $config['allowed_types'] = 'csv';
    $config['max_size'] = '0';

    $this->load->library('upload', $config);

    if ( ! $this->upload->do_upload())
    {
        $company_id = $this->company_info->get_co_id($this->dx_auth->get_user_id());
        $company_name = $this->company_info->get_company_name($company_id);

        $data['title'] = "Import Users";
        $data['header']= "Import Users";
        $data['header_logo'] = $this->company_info->which_company_logo($this->dx_auth->get_user_id());

        $main_data['custom_text'] = $this->_custom_text;
        $main_data['general_text']  = $this->_general_text;

        $main_data['custom_color'] = $this->company_info->get_cached_co_color($company_name);
        $main_data['company_id'] = $company_id;

        //Display errors if any
        $main_data['error'] = $this->upload->display_errors();
        $data['main'] = $this->load->view('adm/import_new_user_error', $main_data, TRUE);
        $this->load->view('template', $data);
    }
    else
    {
        $company_id = $this->company_info->get_co_id($this->dx_auth->get_user_id());
        $company_name = $this->company_info->get_company_name($company_id);

        $data['title'] = "Import Users";
        $data['header']= "Import Users";
        $data['header_logo'] = $this->company_info->which_company_logo($this->dx_auth->get_user_id());

        $main_data['custom_text'] = $this->_custom_text;
        $main_data['general_text']  = $this->_general_text;

        $main_data['custom_color'] = $this->company_info->get_cached_co_color($company_name);
        $main_data['company_id'] = $company_id;

        //Display data on uploaded file
        $main_data['upload_data'] = $this->upload->data();
        $data['main'] = $this->load->view('adm/import_user_sucess', $main_data, TRUE);
        $this->load->view('template', $data);
    }
}

これは、私が話しているコードのブロックです。静的関数に入れようとしましたが、機能しませんでした。

        $company_id = $this->company_info->get_co_id($this->dx_auth->get_user_id());
        $company_name = $this->company_info->get_company_name($company_id);

        $data['title'] = "Import Users";
        $data['header']= "Import Users";
        $data['header_logo'] = $this->company_info->which_company_logo($this->dx_auth->get_user_id());

        $main_data['custom_text'] = $this->_custom_text;
        $main_data['general_text']  = $this->_general_text;

        $main_data['custom_color'] = $this->company_info->get_cached_co_color($company_name);
        $main_data['company_id'] = $company_id;
4

1 に答える 1

1

プログラムで共通コードを一度だけ使用するには、以下のようにコードを変更する必要があります。

function do_upload()
{
    $config['upload_path'] = 'assets/temp';
    $config['allowed_types'] = 'csv';
    $config['max_size'] = '0';

    $this->load->library('upload', $config);
    $company_id = $this->company_info->get_co_id($this->dx_auth->get_user_id());

    $company_name = $this->company_info->get_company_name($company_id);

    $data['title'] = "Import Users";
    $data['header']= "Import Users";
    $data['header_logo'] = $this->company_info->which_company_logo($this->dx_auth->get_user_id());

    $main_data['custom_text'] = $this->_custom_text;
    $main_data['general_text']  = $this->_general_text;    
    $main_data['custom_color'] = $this->company_info->get_cached_co_color($company_name);

    $main_data['company_id'] = $company_id;
    if ( ! $this->upload->do_upload())
    {


        //Display errors if any
        $main_data['error'] = $this->upload->display_errors();
        $data['main'] = $this->load->view('adm/import_new_user_error', $main_data, TRUE);
        $this->load->view('template', $data);
    }
    else
    {

        //Display data on uploaded file
        $main_data['upload_data'] = $this->upload->data();
        $data['main'] = $this->load->view('adm/import_user_sucess', $main_data, TRUE);
        $this->load->view('template', $data);
    }
}
于 2013-12-17T06:39:01.550 に答える