Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php编码中的问题_Php_Joomla - Fatal编程技术网

php编码中的问题

php编码中的问题,php,joomla,Php,Joomla,大家好,我是PHP和Joomla的新手,我在Joomla中开发了一个组件,但是我的代码给了我错误。我试图解决这个问题,但解决不了。有人能告诉我我的代码有什么问题吗?提前谢谢 以下是我的两个文件: first view.html.php defined('_JEXEC') or die('=;)'); jimport('joomla.application.component.view'); class namnamViewlistrestaurant extends JView {

大家好,我是PHP和Joomla的新手,我在Joomla中开发了一个组件,但是我的代码给了我错误。我试图解决这个问题,但解决不了。有人能告诉我我的代码有什么问题吗?提前谢谢

以下是我的两个文件:

first view.html.php

defined('_JEXEC') or die('=;)');

jimport('joomla.application.component.view');

class namnamViewlistrestaurant extends JView
{
    function display($tpl = null)
    {
        $item = 'item';
        RestUser::RestrictDirectAccess();
        //-- Custom css
        JHTML::stylesheet( 'style.css', 'components/com_namnam/assets/css/' );

        $cuisine=Lookups::getLookup('cuisine');
        $lists['cuisine'] = JHTML::_('select.genericlist', $cuisine, 'idcuisine[]', 'class="inputbox" size="7"', 'value', 'text', $item->idcuisine);

        $category=Lookups::getLookup('restcategory');
        $lists['category'] = JHTML::_('select.genericlist', $category, 'idcategory[]', 'class="inputbox" multiple="multiple" size="7"', 'value', 'text', $item->idcategory);

        $items  = & $this->get('Data');
        $pagination =& $this->get('Pagination');

        $lists = & $this->get('List');

        $this->assignRef('items', $items);
        $this->assignRef('pagination', $pagination);
        $this->assignRef('lists', $lists);
        parent::display($tpl);

    }//function

}//class
第二个是listrestaurant.php

defined('_JEXEC') or die('=;)');

jimport('joomla.application.component.model');

class namnamModellistrestaurant extends JModel
{
    var $_data;
    var $_total = null;
    var $_pagination = null;

    function __construct()
    {
        parent::__construct();
        global $mainframe, $option;

        $limit      = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' );
        $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' );
        $limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);
        $this->setState('limit', $limit);
        $this->setState('limitstart', $limitstart);
    }

    function _buildQuery()
    {
        $where = array();
        $where[]=" idowner=".RestUser::getUserID()." ";
        if ($this->search)
        {
            $where[] = 'LOWER(name) LIKE \''. $this->search. '\'';
        }

        $where =( count($where) ) ? ' WHERE ' . implode( ' AND ', $where ) : '';
        $orderby = '';

        #_ECR_MAT_FILTER_MODEL1_

        if (($this->filter_order) && ($this->filter_order_Dir))
        {
            $orderby    = ' ORDER BY '. $this->filter_order .' '. $this->filter_order_Dir;
        }

        $this->_query = ' SELECT *'
        . ' FROM #__namnam_restaurants '
        . $where
        . $orderby
        ;

        return $this->_query;
    }


    function getData()
    {
        if (empty($this->_data))
        {
            $query = $this->_buildQuery();
            $this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit'));
        }
        return $this->_data;
    }

    function getList()
    {
        // table ordering
        $lists['order_Dir'] = $this->filter_order_Dir;
        $lists['order']     = $this->filter_order;

        // search filter
        $lists['search']= $this->search;

        return $lists;
    }

    function getTotal()
    {
        // Load the content if it doesn't already exist
        if (empty($this->_total))
        {
            $query = $this->_buildQuery();
            $this->_total = $this->_getListCount($query);
        }

        return $this->_total;
    }

    function getPagination()
    {
        // Load the content if it doesn't already exist
        if (empty($this->_pagination))
        {
            jimport('joomla.html.pagination');
            $this->_pagination = new JPagination($this->getTotal(), $this->getState('limitstart'), $this->getState('limit') );
        }

        return $this->_pagination;
    }




}//class
错误是:

注意:试图在第26行的C:\wamp\www\namnamam.com\components\com\u namnamam\views\listrestaurant\view.html.php中获取非对象的属性

注意:试图获取C:\wamp\www\namnamnam.com\components\com\u namnamnam\views\listrestaurant\view.html.php第29行中非对象的属性

注意:未定义的属性:namnamModellistrestaurant::$search在第38行的C:\wamp\www\namnamam.com\components\com\u namnamam\models\listrestaurant.php中

注意:未定义的属性:namnamModellistrestaurant::$filter\u顺序为C:\wamp\www\namnamnam.com\components\com\u namnamam\models\listrestaurant.php,第48行

注意:未定义的属性:namnamModellistrestaurant::$search在第38行的C:\wamp\www\namnamam.com\components\com\u namnamam\models\listrestaurant.php中

注意:未定义的属性:namnamModellistrestaurant::$filter\u顺序为C:\wamp\www\namnamnam.com\components\com\u namnamam\models\listrestaurant.php,第48行

注意:未定义的属性:namnamModellistrestaurant::$filter\u order\u Dir,位于C:\wamp\www\namnamnam.com\components\com\u namnamam\models\listrestaurant.php的第76行

注意:未定义的属性:namnamModellistrestaurant::$filter\u顺序为C:\wamp\www\namnamnam.com\components\com\u namnamam\models\listrestaurant.php,第77行

注意:未定义的属性:namnamModellistrestaurant::$search在C:\wamp\www\namnamam.com\components\com\u namnamam\models\listrestaurant.php的第80行


我认为这些错误是可以自我解释的。你到底有什么问题

view.html.php
中,您拥有变量
$item
并尝试访问属性
$item->idcategory
$item->idcategory
,但实际上,
$item
只是一个字符串

 $item = 'item';
因此不能有属性



listrestaurant.php
中,您的类似乎没有属性
search
filter\u order
。您没有在类中定义它们,但我不知道父类
JModel

我认为这些错误是可以自我解释的。你到底有什么问题

defined('_JEXEC') or die('=;)');

jimport('joomla.application.component.model');

class namnamModelajax extends JModel
{
var $_data;
var $_total = null;
var $_pagination = null;

function __construct()
{
    parent::__construct();
    global $mainframe, $option;

    $limit      = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' );
    $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' );
    $limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);
    $this->setState('limit', $limit);
    $this->setState('limitstart', $limitstart);
}

function _buildQuery()
{
    $where = array();
    $where[]=" idowner=".RestUser::getUserID()." ";
    if ($this->search)
    {
        $where[] = 'LOWER(name) LIKE \''. $this->search. '\'';
    }

    $where =( count($where) ) ? ' WHERE ' . implode( ' AND ', $where ) : '';
    $orderby = '';

    #_ECR_MAT_FILTER_MODEL1_

    if (($this->filter_order) && ($this->filter_order_Dir))
    {
        $orderby    = ' ORDER BY '. $this->filter_order .' '. $this->filter_order_Dir;
    }

    $this->_query = ' SELECT *'
    . ' FROM #__namnam_restaurants '
    . $where
    . $orderby
    ;

    return $this->_query;
}


function getSponRest($limiter)
{
    $db=$this->_db;
    $query="SELECT id as id,restaurant_name as name FROM #__namnam_restaurants where published=1 and issponsored=1 limit $limiter";
    $db->setQuery($query);
    //$result =$db->loadResult();
    $result =$db->loadObjectList();
    return $result;
}

function getAllRestaurants($limiter)
{
    $db=$this->_db;
    $query="SELECT id as id,restaurant_name as name FROM #__namnam_restaurants where published=1 limit $limiter";
    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;
}

function getStaffFavs($limiter)
{
    $db=$this->_db;
    $query="SELECT id as id,restaurant_name as name FROM #__namnam_restaurants where published=1 and stafffav=1 limit $limiter";
    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;
}


function getCuisines()
{
    $db=$this->_db;
    $query="select id as id,name as name from jos_namnam_cuisine where id in(select distinct idcuisine from jos_namnam_relcuisine)";
    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;
}


function getCategories()
{
    $db=$this->_db;
    $query="select id as id,name as name from jos_namnam_restcategory where id in(select distinct idcategory from jos_namnam_relcategory)";
    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;
}
function getRestByCuisine($limiter,$id)
{
    $db=$this->_db;
    $query="SELECT j.id as id, j.restaurant_name as name FROM jos_namnam_restaurants j, jos_namnam_relcuisine b where b.idforeign=j.id and b.idcuisine=$id limit $limiter";
    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;
}
function getRestByCategory($limiter,$id)
{
    $db=$this->_db;
    $query="SELECT j.id as id, j.restaurant_name as name FROM jos_namnam_restaurants j, jos_namnam_relcategory b where b.idforeign=j.id and b.idcategory=$id limit $limiter";
    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;
}

function RegisterUser($post)
{

}

function login()
{
    // Check for request forgeries
    //JRequest::checkToken('request') or jexit( 'Invalid Token' );

    global $mainframe;

    $options = array();
    $options['remember'] = JRequest::getBool('remember', false);
    $options['return'] = $return;

    $credentials = array();
    //$credentials['username'] = JRequest::getVar('username', '', 'method', 'username');
    //$credentials['password'] = JRequest::getString('passwd', '', 'post', JREQUEST_ALLOWRAW);

    $credentials['username'] = JRequest::getString('username');
    $credentials['password'] = JRequest::getString('passwd');

    //preform the login action
    $error = $mainframe->login($credentials, $options);

    if(!JError::isError($error))
    {
        //login succeeded
        return true;
    }
    else
    {
        //login failed
        //$arrayError[0]="#error";
        //$arrayError[1]="Invalid Username or Password";
        //$arrayError[2]="#error";
        //return '{"jsonValidateReturn":'.json_encode($arrayError).'}';
        print_r($error);
        $msg="Please enter correct Username and Password";
        return $msg;

    }
}



function getRestDetails($restID){

    $db=$this->_db;
    //$query="SELECT id as id,restaurant_name as name FROM #__namnam_restaurants where published=1 limit $limiter";
    $query='select r.id as id, r.restaurant_name as name,
        (select group_concat(a.name) as cuisinename from jos_namnam_cuisine a,jos_namnam_relcuisine b
        where a.id=b.idcuisine and b.idforeign=r.id) as cuisine,
        (select group_concat(rcat.name) as categoryname from jos_namnam_restcategory rcat,jos_namnam_relcategory relcat
        where rcat.id=relcat.idcategory and relcat.idforeign=r.id) as category,
        r.budget as budget,
        (SELECT group_concat(concat_ws("/",cty.cityname,dst.districtname,cnt.name)) as location
        FROM jos_namnam_restlocations restloc,jos_namnam_cities cty,jos_namnam_districts dst,
        jos_namnam_countries cnt where cty.id=restloc.idcity and dst.id=restloc.iddistrict and
        cnt.id=restloc.idcountry and restloc.idrestaurant=r.id) as locations,
        r.hotline as hotline,
        r.logo as logo,
        (select group_concat(rrloc.phone) as phone from jos_namnam_restlocations rrloc where rrloc.idrestaurant=r.id) as branchphones
        from jos_namnam_restaurants r where r.id='.$restID;

    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;


}


function getData()
{
    if (empty($this->_data))
    {
        $query = $this->_buildQuery();
        $this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit'));
    }
    return $this->_data;
}

function getList()
{
    // table ordering
    $lists['order_Dir'] = $this->filter_order_Dir;
    $lists['order']     = $this->filter_order;

    // search filter
    $lists['search']= $this->search;

    return $lists;
}

function getTotal()
{
    // Load the content if it doesn't already exist
    if (empty($this->_total))
    {
        $query = $this->_buildQuery();
        $this->_total = $this->_getListCount($query);
    }

    return $this->_total;
}

function getPagination()
{
    // Load the content if it doesn't already exist
    if (empty($this->_pagination))
    {
        jimport('joomla.html.pagination');
        $this->_pagination = new JPagination($this->getTotal(), $this->getState('limitstart'), $this->getState('limit') );
    }

    return $this->_pagination;
}

}//class
view.html.php
中,您拥有变量
$item
并尝试访问属性
$item->idcategory
$item->idcategory
,但实际上,
$item
只是一个字符串

 $item = 'item';
因此不能有属性



listrestaurant.php
中,您的类似乎没有属性
search
filter\u order
。您没有在类中定义它们,但我不知道父类
JModel

如果您是PHP新手,就不应该使用Joomla。如果您是PHP新手,你不应该使用Joomla。这是父类可以在这个问题上进行elobrate。几乎我80%的错误都没有了,但还有两个错误。请帮助我:注意:尝试在C:\wamp\www\namnamam.com\components\com\u namam\views\listrestaurant\view.html.php第28行获取非对象的属性注意:尝试获取C:\wamp\www\namnamam.com\components\com\u namnamam\views\listrestaurant\view.html.php行中非对象的属性31@anwar例如我不知道你的申请。你必须给
$item
分配一个有效的对象。这是父类,你可以在这个问题上编辑它。我几乎80%的错误都没有了,但是还有两个错误。请帮助我:注意:在第28行的C:\wamp\www\namnamam.com\components\com\u namam\views\liststaurant\view.html.php中尝试获取非对象的属性注意:试图在线获取C:\wamp\www\namnamnam.com\components\com\u namnamnam\views\listrestaurant\view.html.php中非对象的属性31@anwar例如我不知道你的申请。您必须为
$item
分配一个有效的对象。不,不是。这和上面的课一样。如果你自己的问题不是真实的答案,你也不应该回答。无论如何,你应该知道你的类中有哪些属性可用,如果它说
search
不可用,那么它就不可用,你不能使用它。不,它不可用。这和上面的课一样。如果你自己的问题不是真实的答案,你也不应该回答。无论如何,你应该知道哪些属性在你的类中可用,如果它说
search
不可用,那么它就不可用,你不能使用它。
defined('_JEXEC') or die('=;)');

jimport('joomla.application.component.model');

class namnamModelajax extends JModel
{
var $_data;
var $_total = null;
var $_pagination = null;

function __construct()
{
    parent::__construct();
    global $mainframe, $option;

    $limit      = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' );
    $limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' );
    $limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);
    $this->setState('limit', $limit);
    $this->setState('limitstart', $limitstart);
}

function _buildQuery()
{
    $where = array();
    $where[]=" idowner=".RestUser::getUserID()." ";
    if ($this->search)
    {
        $where[] = 'LOWER(name) LIKE \''. $this->search. '\'';
    }

    $where =( count($where) ) ? ' WHERE ' . implode( ' AND ', $where ) : '';
    $orderby = '';

    #_ECR_MAT_FILTER_MODEL1_

    if (($this->filter_order) && ($this->filter_order_Dir))
    {
        $orderby    = ' ORDER BY '. $this->filter_order .' '. $this->filter_order_Dir;
    }

    $this->_query = ' SELECT *'
    . ' FROM #__namnam_restaurants '
    . $where
    . $orderby
    ;

    return $this->_query;
}


function getSponRest($limiter)
{
    $db=$this->_db;
    $query="SELECT id as id,restaurant_name as name FROM #__namnam_restaurants where published=1 and issponsored=1 limit $limiter";
    $db->setQuery($query);
    //$result =$db->loadResult();
    $result =$db->loadObjectList();
    return $result;
}

function getAllRestaurants($limiter)
{
    $db=$this->_db;
    $query="SELECT id as id,restaurant_name as name FROM #__namnam_restaurants where published=1 limit $limiter";
    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;
}

function getStaffFavs($limiter)
{
    $db=$this->_db;
    $query="SELECT id as id,restaurant_name as name FROM #__namnam_restaurants where published=1 and stafffav=1 limit $limiter";
    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;
}


function getCuisines()
{
    $db=$this->_db;
    $query="select id as id,name as name from jos_namnam_cuisine where id in(select distinct idcuisine from jos_namnam_relcuisine)";
    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;
}


function getCategories()
{
    $db=$this->_db;
    $query="select id as id,name as name from jos_namnam_restcategory where id in(select distinct idcategory from jos_namnam_relcategory)";
    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;
}
function getRestByCuisine($limiter,$id)
{
    $db=$this->_db;
    $query="SELECT j.id as id, j.restaurant_name as name FROM jos_namnam_restaurants j, jos_namnam_relcuisine b where b.idforeign=j.id and b.idcuisine=$id limit $limiter";
    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;
}
function getRestByCategory($limiter,$id)
{
    $db=$this->_db;
    $query="SELECT j.id as id, j.restaurant_name as name FROM jos_namnam_restaurants j, jos_namnam_relcategory b where b.idforeign=j.id and b.idcategory=$id limit $limiter";
    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;
}

function RegisterUser($post)
{

}

function login()
{
    // Check for request forgeries
    //JRequest::checkToken('request') or jexit( 'Invalid Token' );

    global $mainframe;

    $options = array();
    $options['remember'] = JRequest::getBool('remember', false);
    $options['return'] = $return;

    $credentials = array();
    //$credentials['username'] = JRequest::getVar('username', '', 'method', 'username');
    //$credentials['password'] = JRequest::getString('passwd', '', 'post', JREQUEST_ALLOWRAW);

    $credentials['username'] = JRequest::getString('username');
    $credentials['password'] = JRequest::getString('passwd');

    //preform the login action
    $error = $mainframe->login($credentials, $options);

    if(!JError::isError($error))
    {
        //login succeeded
        return true;
    }
    else
    {
        //login failed
        //$arrayError[0]="#error";
        //$arrayError[1]="Invalid Username or Password";
        //$arrayError[2]="#error";
        //return '{"jsonValidateReturn":'.json_encode($arrayError).'}';
        print_r($error);
        $msg="Please enter correct Username and Password";
        return $msg;

    }
}



function getRestDetails($restID){

    $db=$this->_db;
    //$query="SELECT id as id,restaurant_name as name FROM #__namnam_restaurants where published=1 limit $limiter";
    $query='select r.id as id, r.restaurant_name as name,
        (select group_concat(a.name) as cuisinename from jos_namnam_cuisine a,jos_namnam_relcuisine b
        where a.id=b.idcuisine and b.idforeign=r.id) as cuisine,
        (select group_concat(rcat.name) as categoryname from jos_namnam_restcategory rcat,jos_namnam_relcategory relcat
        where rcat.id=relcat.idcategory and relcat.idforeign=r.id) as category,
        r.budget as budget,
        (SELECT group_concat(concat_ws("/",cty.cityname,dst.districtname,cnt.name)) as location
        FROM jos_namnam_restlocations restloc,jos_namnam_cities cty,jos_namnam_districts dst,
        jos_namnam_countries cnt where cty.id=restloc.idcity and dst.id=restloc.iddistrict and
        cnt.id=restloc.idcountry and restloc.idrestaurant=r.id) as locations,
        r.hotline as hotline,
        r.logo as logo,
        (select group_concat(rrloc.phone) as phone from jos_namnam_restlocations rrloc where rrloc.idrestaurant=r.id) as branchphones
        from jos_namnam_restaurants r where r.id='.$restID;

    $db->setQuery($query);
    $result =$db->loadObjectList();
    return $result ;


}


function getData()
{
    if (empty($this->_data))
    {
        $query = $this->_buildQuery();
        $this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit'));
    }
    return $this->_data;
}

function getList()
{
    // table ordering
    $lists['order_Dir'] = $this->filter_order_Dir;
    $lists['order']     = $this->filter_order;

    // search filter
    $lists['search']= $this->search;

    return $lists;
}

function getTotal()
{
    // Load the content if it doesn't already exist
    if (empty($this->_total))
    {
        $query = $this->_buildQuery();
        $this->_total = $this->_getListCount($query);
    }

    return $this->_total;
}

function getPagination()
{
    // Load the content if it doesn't already exist
    if (empty($this->_pagination))
    {
        jimport('joomla.html.pagination');
        $this->_pagination = new JPagination($this->getTotal(), $this->getState('limitstart'), $this->getState('limit') );
    }

    return $this->_pagination;
}

}//class