We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 34749
    • 15 Posts
    Bonjour,

    je souhaites accéder à une table perso par une simple requete comme ci dessous:

    <?php
    $modx=&$modx;
    $modx->addPackage('tecknocracy',$modx->getOption('core_path').'components/','tck_');
    
    $sanitizedRequests = $modx->sanitize($_GET); // recommended, will be applied to all $_GET, $_POST, $_COOKIE
    $_GET = array();
    $_GET = $sanitizedRequests;
    
    $c = $modx->getObject('tckCountry', array('id' => '1'));
    
    return $modx->toJSON($c);
    
    ?>


    mais rien n'y fait je n'y arrive pas
    voici ce que j'obtient dans le log d'erreur:

    [2012-02-10 17:32:02] (ERROR @ /index.php) Could not load class: tckCountry from mysql.tckcountry.
    [2012-02-10 17:32:02] (ERROR @ /index.php) tckCountry::load() is not a valid static method.


    savez vous pourquoi cela me fait cela.
    ayant plusieurs fois créer des composants je n'est jamais eu ce probleme.

    j'utilise MODX Revolution 2.2.0-pl2 (traditional).

    merci pour votre aide
      • 33976 ☆ A M B ☆
      • 571 Posts
      Bonsoir draeya,

      Il semblerait que modx/xpdo n'arrivent pas à accéder à ta classe (qui devrait, je suppose, se trouver dans core/components/ton-composant/model/ton-composant/mysql/tckcountry.class.php).

      Es-tu sûr d'avoir bien renseigné ton schéma de table et correctement généré les classes PHP ?
        • 34749
        • 15 Posts
        Bonjour,

        voici le modele:

        <?xml version="1.0" encoding="utf-8"?>
        <model package="Tecknocracy" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" tablePrefix="tck_">
        
        <object class="tckCountry" table="country" extends="xPDOSimpleObject">
        	<field key="id" dbtype="int" precision="11" phptype="integer" null="false" default="" index="index" generated="native"/>
        	<field key="class_key" dbtype="varchar" precision="100" phptype="string" null="false" default="tckCountry" />
        	<field key="name" dbtype="varchar" precision="255" phptype="string" null="false" />
        	<field key="iso" dbtype="varchar" precision="5" phptype="string" null="false" />
        </object>
        
        </model>


        la structure de mon composants eest comme ceci:

        -core
        --Tecknocracy
        ---classes
        ---model
        ---- schema.xml
        ---mysql
        ----tckcountry.class.php
        ----tckcountry.map.inc.php
        ---processors
        -- index.php
        -- metadata.mysql.php
        -- tckcountry.class.php

        je ne trouve pas d'erreur à moins que j'ai oublier quelque choses.

        au cas ou cela peux servir.
        le proprietaire est monuserweb:www-data je me demande si cela ne peux pas venir de la ?
        [ed. note: draeya last edited this post 14 years, 8 months ago.]
          • 33976 ☆ A M B ☆
          • 571 Posts
          draeya,

          Effectivement, cela pourrait venir d'un problème de droit (empêchant donc modx/xpdo de lire ta classe).
          Aussi, attention aux majuscules dans les noms de dossiers/fichiers. Sous Windows pas de problème, mais les systèmes *NIX ont tendance à ne pas aimer smiley