0

私は現在、3 つの異なる言語で表示できる Web サイトに取り組んでいます。すべてのテキストを言語ファイルに入れましたが、ほとんどすべてが期待どおりに機能しています。次のように、構成ファイルとに入れたページネーションの構成のapplication/configようなもの:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

$config['num_links']      = 2;
$config['full_tag_open']  = '<p class="pagination">';
$config['full_tag_close'] = '</p>';
$config['first_link']     = '&laquo;&nbsp;' . lang('first');
$config['last_link']      = lang('last') . '&nbsp;&raquo;';

そして、それはうまく機能しますが、次のように、フォーム検証構成ファイルに対して同じことを試しました:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

$config = array(

    'login' => array(
        array(
            'field' => 'login_email',
            'label' => lang('emailaddress'),
            'rules' => 'trim|required|valid_email|min_length[6]'
        ),
        array(
            'field' => 'login_password',
            'label' => lang('password'),
            'rules' => 'trim|required'
        ),
    ),

しかし、これはうまくいかないようです。この構成ファイルは、言語ファイル/ライブラリの前に読み込まれるようです。正直なところ、現時点では、構成ファイルからすべてを取り出してコントローラーに入れる以外に、これを修正する方法が本当にわかりませんが、これはしたくありません。

これを修正する方法はありますか?

4

2 に答える 2

5

フォーム検証ルールを定義するときにフィールド変換がどのように行われるかを確認する場合 (以下の例を参照し、2 番目の引数を検討してください):

$this->form_validation->set_rules('first_name', 'lang:first_name', 'required');

実際のコードでどこが間違っているかがわかります。それ以外の:

array(
    'field' => 'login_password',
    'label' => lang('password'),
    'rules' => 'trim|required'
),

行く方法は次のとおりです。

 array(
    'field' => 'login_password',
    'label' => 'lang:password',
    'rules' => 'trim|required'
),
于 2012-10-28T16:08:24.593 に答える
0

@Krishna Raj K私はあなたのようなトランス関数を使用します。そして、私はそれを修正しました。私がwiredesignz hmvcを使用するもう1つのこと。MY_Form_validation.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 

    /** application/libraries/MY_Form_validation **/ 
    class MY_Form_validation extends CI_Form_validation 
    {
        public $CI;

        protected function _translate_fieldname($fieldname)
        {
            // Do we need to translate the field name? We look for the prefix 'trans:' to determine this
            if (sscanf($fieldname, 'trans:%s', $line) === 1 )
            {
                return trans($line);
            }

        return $fieldname;
    }
}

モデルのルール

'parent_id' => array(
                        'field'=>'parent_id',
                        'label'=>'trans:main.taxonomy.column.parent_id.name',
                        'rules'=>'is_natural_no_zero',

                    ), 

コントローラーでは、この順序に従ってロードする必要があります

//helper
$this->load->helper(array('array','form','anhtocon','trans'));
//library
$this->load->library(array('Nested_set','form_validation'));

$this->form_validation->CI =& $this;
//model
$this->load->model('taxonomy_model');
于 2018-05-21T19:05:58.927 に答える