it-swarm.dev

サーバー側の検証ルールが見つかりません

カスタムフィールドをcom_contentに追加しましたが、すべてうまくいきました。私はいくつかのサーバー側の検証を追加しようとしています、そして私が見つけることができたすべてのチュートリアルと例、特に this one の後、ルールが見つからないために失敗しています

目的のルールはユーザー名の検証とほぼ同じなので、私はそれを出発点としてコピー/名前変更しました。ファイル/パスは存在し、ロード/保存は適切に機能しています。

私が提供していない追加の情報、またはおそらく新鮮な目が指摘されたときに私を愚かに感じるでしょうか?

B/Eで[保存]をクリックすると、次のエラーが発生します。

エラーが発生しました。

0 JForm :: validateField()ルールmycodeがありません。

カスタムフィールドXML(サーバーの検証を除いて、期待どおりに機能します)

<?xml version="1.0" encoding="utf-8"?>
<form addfieldpath="/administrator/components/com_mycomponent/models/rules">
    <fields name="params">
        <fieldset name="MyFields" label="My Info">
            <field name="my_code"
                type="text" size="15"
                validate="mycode"
                label="My Code"
                />
        </fieldset>
    </fields>
</form>

/ administrator/components/com_mycomponent/models/rules/mycode.php

//jimport('joomla.form.formrule');   does not work with or without this
class JFormRuleMycode extends JFormRule
{
    public function test(SimpleXMLElement $element, $value, $group = null, JRegistry $input = null, JForm $form = null) {
        return true;
    }
}
5
GDP

実際にパスを指定して、正しい場所に配置する必要があるようですlol!問題はrulesではなくfieldsのパスを指定することでした!

この修正により問題が修正されました:

<form>
    <fields name="params" addrulepath="/administrator/components/com_mycomponent/models/rules">
4
GDP