0

Cakephp でビュー コードを合理化するために作成した一種のミニ構文解析があります。基本的に、データをループして手動で編集するのではなく、データセットと (オプションで) データをフォーマットする方法の一連のオプションを指定すると、テーブル ヘルパーを作成しました。

これにより、ユーザーは好きなだけ複雑にすることも単純にすることもでき、非常に強力になります。ただし、これを実現するには、単純な構文解析を作成する必要がありました。簡単な例として、ユーザーは次のようにします。

$this->Table->data = $userData;
$this->Table->elements['td']['data'] = array(
    '{:User.username:}',
    '{:User.created:}' => array('Time::nice')
);
echo $this->Table->render();

そして、テーブルをレンダリングすると、次が生成されます。

<table>
    <tbody>
        <tr><td>rich97</td><td>Sun 21st 02:30pm</td></tr>
    </tbody>
</table>

問題が発生すると、次のように中かっこをネストしようとします。

{:User.levels.iconClasses.{:User.access:}:}

とにかく、最初のラウンドで最も内側のブラケットしか取得できず、一致がなくなるまでループしますか? それとも一気にやりますか?または、strpos を使用したほうがよいでしょうか?

これが私の正規表現です。

 '/\{\:([^}]+)\:\}/'
4

2 に答える 2

1

左中かっこを否定文字クラスに追加するだけです。

'/\{:([^{}]+):\}/'
于 2010-03-16T15:58:54.440 に答える
0
var $validate= array(
'name'=>array(
'notEmpty'  =>array(
    'rule'=>'notEmpty',
    'message'=>'Please Enter The Name'
),
'isUnique'  =>array(
    'rule'=>'isUnique',
    'message'=>'Name Already Exist' 
)
),
'address'=>array(
'rule'=>'notEmpty',
'message'=>'Please Enter The Address')

);
于 2011-02-15T13:10:51.320 に答える