Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 583 Просмотров
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Здравствуйте!

Разрабатываю компонент, в котором для фронтенда есть представление с кнопкой удалить для удаления отмеченных пунктов из списка. Когда исполнение кода доходит до функции delete() в классе AdminModel (\libraries\src\MVC\Model\AdminModel.php), внутри которой исполняется строка:
Код
$table = $this->getTable();
то в $table попадает false, то есть метод не может найти или подтянуть файл таблицы administrator/components/com_anysend/tables/anysend_contact_books.php, в то время когда он там есть.
Вот определение модели \components\com_anysend\models\book.php), которая пытается получить экземпляр таблицы:
Код
class AnysendModelBook extends JModelAdmin
{
public function getTable($type = 'anysend_contact_books', $prefix = '', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
}
А вот содержимое файла таблицы administrator/components/com_anysend/tables/anysend_contact_books.php:
Код
class AnysendTableAnysend extends JTable
{
function __construct(&$db)
{
parent::__construct('#__anysend_contact_books', 'id', $db);
}
}
Где я ошибся?
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Почему getTable() не находит таблицу?
« Ответ #1 : 12.05.2020, 22:08:59 »
Где я ошибся?
Неправильный класс таблицы, значение по умолчанию $type в модели и имя файла таблицы.
Проще говоря везде.

Посмотите в любой компоненте и сделайте так же.

Мини совет `_`(Нижнее подчеркивание) - это боль
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Почему getTable() не находит таблицу?
« Ответ #2 : 13.05.2020, 01:09:30 »
Попробуйте
Код
class AnysendModelBook extends JModelAdmin
{
public function getTable($type = 'Anysend', $prefix = 'AnysendTable', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
}
Но вообще-то имя файла класса таблицы должно совпадать с $type и в вашем случае должно быть books.

P.S. Вам это не понравится, но когда ты достиг того уровня, чтобы писать компонент, ты должен уметь читать код, в т.ч. код библиотеки CMS.
« Последнее редактирование: 13.05.2020, 01:14:37 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Почему getTable() не находит таблицу?
« Ответ #3 : 13.05.2020, 09:14:42 »
Доброе утро! Спасибо всем.
Мини совет `_`(Нижнее подчеркивание) - это боль
В наименовании файла или таблицы БД? Почему?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Почему id не назначается переменной?

Автор borro

Ответов: 3
Просмотров: 651
Последний ответ 29.06.2020, 12:59:51
от borro
Почему ссылки меню одинаковые для разных представлений?

Автор borro

Ответов: 3
Просмотров: 512
Последний ответ 14.02.2020, 16:19:18
от borro
Почему строки не удалились из базы данных?

Автор borro

Ответов: 6
Просмотров: 722
Последний ответ 28.06.2017, 10:26:48
от borro
[Решено] почему onContentPrepare не срабатывает?

Автор d0ublezer0

Ответов: 7
Просмотров: 1189
Последний ответ 07.10.2016, 08:22:57
от d0ublezer0
Сохранение расчета в таблицу MySQL

Автор KasPol

Ответов: 8
Просмотров: 1109
Последний ответ 24.06.2015, 14:59:42
от KasPol