1

今月初めて CodeIgniter 内で my_model と my_controller を操作しましたが、これでほとんど機能していると思います。

挿入機能が正常に動作するようになりました。ID があれば更新を追加しようとしています。

これが私のコードです:

function upsert_client($client_id = 0)
{
    load_model('client_model');
    $this->insertMethodJS();

    $this->fields['client'] = $this->_prototype_client();

    $user_id = get_user_id();
    $company_id = get_company_id();

    if ($client_id)
    {
        $this->data['client'] = $this->client_model->get_record($client_id);
    }   



    if (!$this->ion_auth->in_group(GROUP_NAME_MANAGER, $user_id))
    {
        redirect('members/dashboard');
    }

    if ($_POST)
    {
        $this->load->helper('string');  

        if ($this->_validate_client())
        {   

        $fields = $this->input->post(null , TRUE);
        $fields['user_id'] = $user_id;
        $fields['company_id'] = $company_id;
        $fields['active'] = 1;

            if ($client_id)
            {
            $fields['id'] = $this->client_model->get_record($client_id);    
            unset($fields['billing']);
            $this->client_model->update($client_id, $fields);       
            }

            else 
            {
            unset($fields['billing']);
            $this->client_model->insert($fields);
            redirect('members/clients/manage_clients');
            }

        }
    }

    $this->template->write_view('content',$this->base_path.'/'.build_view_path(__METHOD__), $this->data);           
    $this->template->render();
}



function _prototype_client()
{
    $fields = array();

    $fields['id']   = 0;
    $fields['name'] = '';           

    return $fields;
}

そして私のclient_modelから:

class Client_model extends MY_Model {

function get_record($client_id)
{

    $query = $this->db->select('id')
    ->where(array('id'=>$client_id))
    ->get('clients');
    return $query->row_array();
}

}

「クライアント」を編集しようとするたびに、新しいクライアントが挿入されます...現在編集しようとしているのは「名前」フィールドだけです。

私の編集ボタン:

<td><a href="add_client/<?= $client->id; ?>"><button class="btn btn-inverse" style="float: right;" type="button">Edit</button></a></td>

どんな助けでも大歓迎です、ありがとう!また、追加の詳細が必要な場合はお知らせください...

4

2 に答える 2

1

ハイパーリンクは「add_client」を指していますが、表示している機能は「upsert」と呼ばれています。正しい URL を呼び出していますか?

于 2012-09-25T23:52:29.107 に答える
1

特にion authを使用したことはありませんが、正しく参照されていない機能がいくつかあることがわかります。

load_model('client_model');
//Should be
$this->load->model('client_model');

また、他のいくつかの関数は次のように参照する必要があります

$this->function_name();
//Instead of just
function_name();
//Unless they are in another library
$this->lib_name->function_name();

これで問題が解決するかどうかはわかりませんが、気付いたことがいくつかあります。

于 2012-09-25T20:17:39.080 に答える