0

こんにちはすべて私は、クラッドを使用してcodeigniterでサイトを開発しています。挿入ビューに、デフォルトで値を入力する場所を選択しました。彼のモードを実行しました(ファイルの名前はid_companyです)

$crud = new grocery_CRUD();
$state_crud = $crud->getState();
$crud->set_relation('id_company','company','name_company');
$crud->set_relation('id_plant','plant','name_plant');
$crud->set_relation('id_order','order','name_order');
$crud->field_type('id_plant','dropdown', array('0' => '') );
$crud->unset_print();
$crud->unset_export();
$crud->unset_delete();
$data['name_company'] = $company[0]['name_company'];
$data['id_company'] = $company[0]['id'];

$crud->callback_edit_field('id_company',array($this,'edit_field_callback_id_company_add'));

コールバックは次のとおりです。

function edit_field_callback_id_company_add($value, $primary_key){
    $company = $this->Company_model->getCompany($value);
    return '<div id="field-id_company" class="readonly_label">'.$company->name_company.'</div>';
}

私のモデル機能

function getCompany($id_company, $select = ''){
        if( isset($id_company) && $id_company > 0 ) : 
            $this->CI =& get_instance();
            if( $select ) $this->CI->db->select($select);
            $this->CI->db->where('id', $id_company);
            $query = $this->CI->db->get_where($this->company_table);
            return $query->result_array();
        endif;
        return FALSE;
    }

crudがfield-id_company_czhnという名前のselectを挿入するのを見ましたが、何も挿入しようとしませんでした。問題はどこだ?

4

2 に答える 2

2

更新: ifステートメントを追加しようとすると、機能するはずです。したがって、あなたの場合、おそらくこれはあなたにとってうまくいくでしょう:

$crud = new grocery_CRUD();
$state_crud = $crud->getState();

if ($state_crud == 'edit' || $state_crud == 'update') {
    $crud->callback_edit_field('id_company',array($this,'edit_field_callback_id_company_add'));
} else {
    $crud->set_relation('id_company','company','name_company');
}

...

コールバックを使用しているロジックが間違っています。したがって、あなたの場合、次のようなものが必要です。

 $crud->callback_edit_field('id_company',
                     array($this,'edit_field_callback_id_company_add'));

その後:

 function edit_field_callback_id_company_add($value, $primary_key){

    $this->db->where('id',$value); //Where id is the primary key for company table
    $company = $this->db->get('company')->row();

    return '<div id="field-id_company" class="readonly_label">'.$company->name_company.'</div>';
 }

ドキュメントには、コールバックの使用方法を説明する記事があります:http ://www.grocerycrud.com/documentation/tutorial_using_callbacks

必要に応じて、field_type = readonlyでfield_typeメソッド( http://www.grocerycrud.com/documentation/options_functions/field_type )を使用することもできます。

デフォルト値の機能については、githubに問題があります:https ://github.com/scoumbourdis/grocery-crud/issues/138

于 2013-03-06T08:12:45.960 に答える
-1

ここでこの問題を決定しました。お役に立てば幸いです。http://www.grocerycrud.com/forums/topic/1846-setting-default-value-for-field-type-and-set-relation/

于 2013-11-05T08:20:43.787 に答える