JTable store () возвращает true, но никакая строка не вставлена

Вот определение класса

class MyTable extends JTable{

    public $parent_id = null;
    public $hits = 1;

    function __construct()
    {
        parent::__construct('#__mytable', 'parent_id', JFactory::getDbo());
    }
}

и вот программный код.

$table = new MyTable();
if(!$table->load($id)){ //If the record doe not exist
    $table->parent_id=id; //Setting the id for the new row
    echo "Should be storing new table row...";
    $table->store(true);//New record should be created here
}else{
    echo "Record existed existed : ";
    $table->hit();
    echo "$table->hits hits";
}

Проблема заключается в том, что хранилище $ table- & gt возвращает true, но не создает никаких записей в базе данных.

Если я вручную добавляю записи, load () работает нормально. Но он не вставляет новую строку. getErrors () возвращает NULL

2 голоса | спросил dsat 7 AMpTue, 07 Apr 2015 10:41:15 +030041Tuesday 2015, 10:41:15

1 ответ


2

Я считаю, вы хотите привязать свои данные на уровне базы данных с помощью первично-внешнего ключа, правильно? Но FYI, сам Joomla не использует свои данные таким образом. Таблицы Joomla не используют привязки внешних ключей на уровне базы данных, но вместо этого Joomla обрабатывает ее на уровне приложения (кода). Если вы хотите использовать стандартный способ Joomla, а также если вы разрабатываете компонент для публичного /коммерческого использования, вы должны удалить зависимость внешнего ключа на уровне базы данных, а затем использовать JTable для выполнения выше задачи.

Здесь вы найдете относительное обсуждение: https://joomla.stackexchange.com/a/4541/3869

ответил SD. 7 PMpTue, 07 Apr 2015 12:12:36 +030012Tuesday 2015, 12:12:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132