kutombawewe.net

Cómo ejecutar la consulta en el subcontrolador Joomla 3x

Tengo un componente simple que realizará CRUD para mi aplicación móvil en el sitio de Joomla.

Estas son la estructura de mis archivos.

http://localhost/chichi-server/components/com_chichi/controller.php
http://localhost/chichi-server/components/com_chichi/chichi.php
http://localhost/chichi-server/components/com_chichi/controllers/getdata.php
http://localhost/chichi-server/components/com_chichi/controllers/postdata.php

en mi chichi.php tengo esto

<?php
  defined('_JEXEC') or die('access dedied');
  jimport('joomla.application.component.controller');
  $input = JFactory::getApplication()->input;
  $controller=JControllerLegacy::getInstance('ChichiMobilePost');
  $controller->execute($input->get('task'));
  $controller->redirect();

Y en controller.php tengo

<?php
   defined('_JEXEC') or die('access dedied');
   jimport('joomla.application.component.controller');

   class ChichiMobilePostController extends JControllerLegacy{  
          function diplay(){
                echo 'Noting to do';    
              }

          function create(){
                echo 'Welcom to Create';    
              }
     }

En mi /controllers/getdata.php

<?php
 defined('_JEXEC') or die('access dedied');
 jimport('joomla.application.component.controller');

class ChichiMobilePostController extends JControllerLegacy{
//GET USER COLLECTIONS  
  function getcollection(){
    //Prevent template from showing
    $app =JFactory::getApplication();
    $input = JFactory::getApplication()->input;
    $userID = $input->post->get('userID');
    $db = JFactory::getDbo();
    // Create a new query object.
    $query = $db->getQuery(true);
    try
        {   
            $query
                ->select(array('*'))
                ->from($db->quoteName('#__user'))   
                ->where($db->quoteName('id') .'=' . $userID .'');
            $db->setQuery($query);
            $results = $db->loadAssocList();    
        }
    catch (Exception $e)
        {
            $this->setError('The error message you want');
            return false;
        }   
            echo json_encode(array('collect'=>$results));
            $app->close();
   }        
};

Mi pregunta, ¿cómo obtengo una consulta en/controllers/getdata/php para ejecutar

Traté de acceder a través de

 http://localhost/chichi-server/index.php?option=com_chichi&task=getdata.getcollection

Pero recibo este error "(Vista no encontrada [nombre, tipo, prefijo]: get.getcollection, html, chichimobilepostView)"

Sin embargo si uso

     http://localhost/chichi-server/index.php?option=com_chichi&task=create

el controller.php puede generar "Bienvenido a crear"

la razón por la que estoy haciendo esto es porque habrá muchas publicaciones y solicitudes de la aplicación móvil y aunque podría procesar cada una en su propio archivo.

Me alegrará si alguien puede ayudar. me resuelvo esto, muchas gracias

1
David Addoteye

Intente cambiar el nombre de su clase en /controllers/getdata.php a: ChichiMobilePostController Getdata Entonces Joomla puede encontrar la clase correcta y ejecutar getcollection () si lo llamas a través de

http://localhost/chichi-server/index.php?option=com_chichi&task=getdata.getcollection
3
fruppel