Joomla:如何用LIKE-condition加载JTable-element



我使用以下代码来加载一个类别的记录:

    $res = JTable::getInstance('category');
    $res->load(array('id' => $catid));

现在我想根据标题加载记录,这将与SQL类模式匹配-是否有可能用JTable的简单方式做到这一点,或者我需要$dbo?

据我所知,JTable被设计得很简单,每次只携带一个元素,并且通过主键。如果你真的想要更高级的东西,我建议你使用JDatabaseQuery的方式。

// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
// Select all articles for users who have a username which starts with 'a'.
// Order it by the created date.
$query
    ->select(array('a.*', 'b.username', 'b.name'))
    ->from('#__content AS a')
    ->join('INNER', '#__users AS b ON (a.created_by = b.id)')
    ->where('b.username LIKE 'a%'')
    ->order('a.created DESC');
// Reset the query using our newly populated query object.
$db->setQuery($query);
// Load the results as a list of stdClass objects.
$results = $db->loadObjectList();

在您的情况下,而不是"$db->loadObjectList();"您可以使用"$db->loadObject();"来加载一个项目。


来源:http://docs.joomla.org/Accessing_the_database_using_JDatabase/3.1

最新更新