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

OnePrg

  • Осваиваюсь на форуме
  • 49
  • 1 / 0
Братья и сестры!

Смиренно прошу направить новичка на путь истинный.

Пытаюсь писать свою компоненту. Первые шаги прошли удачно: форма front-end открывается. Теперь нужно на форму добавить поля и тут ошибка

Call to a member function getLabel() on a non-object ..... components\com_drazs\views\application_add\tmpl\default.php on line 12

Файлики тута https://yadi.sk/d/CsCZiil5342LQj

Не могу разобраться с объектами, кто-что вызывает. Дайте ссылки почитать, чтобы ошибку исправить.
« Последнее редактирование: 19.12.2016, 15:57:32 от OnePrg »
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Ошибка: Call to a member function on a non-object
« Ответ #1 : 19.12.2016, 12:54:22 »
Так дали бы сразу код 12 строки и смой функции
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

OnePrg

  • Осваиваюсь на форуме
  • 49
  • 1 / 0
Re: Ошибка: Call to a member function on a non-object
« Ответ #2 : 19.12.2016, 15:24:37 »
Так дали бы сразу код 12 строки и смой функции

даю весь файл

<?php   
/** @var $this DrazsViewApplication_Add */
defined( '_JEXEC' ) or die; // No direct access
?>

<div class="item-page">
   <h1>Форма подачи заявки на приём</h1>
    
    <form action="<?php echo JRoute::_( 'index.php?view=application_add' )?>" method="post" class="form-validate">
 
        <div class="control-group form-inline">

ВОТ ТУТ ОШИБКА!           <div class="control-label"><?php echo $this->form->getLabel( 'name' ); ?></div>
            <div class="controls"><?php echo $this->form->getInput( 'name' ); ?></div>
        </div>
 
        <input type="hidden" name="task" value="form.save" />
        <input type="submit" value="Отправить" />
        <?php echo JHtml::_( 'form.token' ); ?>
    </form>
    
</div>
« Последнее редактирование: 19.12.2016, 15:55:44 от OnePrg »
*

OnePrg

  • Осваиваюсь на форуме
  • 49
  • 1 / 0
Re: Ошибка: Call to a member function on a non-object
« Ответ #3 : 19.12.2016, 15:26:16 »
Менял

<div class="control-label"><?php echo $this->form->getLabel( 'name' ); ?></div>

на

<div class="control-label"><?php echo $this->application_add->getLabel( 'name' ); ?></div>


- не помогло
« Последнее редактирование: 19.12.2016, 15:56:07 от OnePrg »
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Ошибка: Call to a member function on a non-object
« Ответ #4 : 19.12.2016, 16:06:56 »
Ну все просто он не может получить занчение name label а точнее его просто нет, а нулевое там не сделали, ну или в XML забыл label написать. обратисеь к создателю комопнета пусть подправить. чистый баг
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

OnePrg

  • Осваиваюсь на форуме
  • 49
  • 1 / 0
Re: Ошибка: Call to a member function on a non-object
« Ответ #5 : 19.12.2016, 16:12:56 »
В файле

com_drazs\models\forms\application_add.xml прописано

<?xml version="1.0" ?>
<form>
    <fieldset>
        <field name="name" type="text" label="Имя:" class="span3" required="true" />
    </fieldset>
</form>

*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Ошибка: Call to a member function on a non-object
« Ответ #6 : 19.12.2016, 17:35:37 »
Ну все просто он не может получить занчение name label а точнее его просто нет, а нулевое там не сделали, ну или в XML забыл label написать. обратисеь к создателю комопнета пусть подправить. чистый баг
Да нет, в таком случае вернуло бы просто пустую строку.
OnePrg, объект $this->form у вас либо не определен, либо не экземпляр JForm. Сделайте print_r($this->form); и посмотрите, что выводит.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Ошибка: Call to a member function on a non-object
« Ответ #7 : 19.12.2016, 17:39:57 »
Да нет, в таком случае вернуло бы просто пустую строку.
Даже как-то не подумал увидел non-object  и мышенально среагировал.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

OnePrg

  • Осваиваюсь на форуме
  • 49
  • 1 / 0
Re: Ошибка: Call to a member function on a non-object
« Ответ #8 : 20.12.2016, 09:30:44 »
OnePrg, объект $this->form у вас либо не определен, либо не экземпляр JForm. Сделайте print_r($this->form); и посмотрите, что выводит.

ничего не выводит

Как я понимаю последовательность операций:
1. drazs.php - точка входа
2. controller.php - контролер по умолчанию
3. views/appliations_add/view.html.php - вызываемый им вид
4. models/appliations_add.php - вызываемая модель   
5. views\application_add\tmpl\default.php - сама форма

правильно?

я правильно понимаю, что мой объект должен определяться в п.3?

   public function display( $tpl = null )
   {
      
      $this->item = $this->get( 'Item' );
      $this->form = $this->get( 'application_add' );
      $this->state = $this->get( 'State' );
      DrazsSiteHelper::setDocument( 'view title');
      print_r($form);   ВОТ ТУТ ВЫДАЁТ ПУСТО - НИЧЕГО НЕ ПИШЕТ
      parent::display( $tpl );
   }


А если делаю print_r($this);, то выдаёт вот что:

Спойлер
[свернуть]
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Ошибка: Call to a member function on a non-object
« Ответ #9 : 20.12.2016, 09:37:50 »
      $this->form = $this->get( 'application_add' );
Покажите код модели.
      print_r($form);   ВОТ ТУТ ВЫДАЁТ ПУСТО - НИЧЕГО НЕ ПИШЕТ
$form откуда взялась?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

OnePrg

  • Осваиваюсь на форуме
  • 49
  • 1 / 0
Re: Ошибка: Call to a member function on a non-object
« Ответ #10 : 20.12.2016, 10:04:43 »
Разобрался :)

   public function display( $tpl = null )
   {
     
      $this->item = $this->get( 'Item' );
      $this->form = $this->get( 'application_add' ); ВОТ ТУТ ОШИБКА; нужно $this->get( 'form' )
      $this->state = $this->get( 'State' );
      DrazsSiteHelper::setDocument( 'view title');
      print_r($form);   
      parent::display( $tpl );
   }


Всем спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка после обновления Templater manager от разработчика Regular Labs

Автор fbr

Ответов: 2
Просмотров: 654
Последний ответ 24.03.2021, 21:17:35
от fbr
Ошибка при установке DJ Reviews

Автор Kijv

Ответов: 0
Просмотров: 585
Последний ответ 15.02.2021, 14:52:09
от Kijv
Ошибка при работе с widgetkit в админке

Автор stanzdor

Ответов: 2
Просмотров: 1258
Последний ответ 22.09.2020, 18:05:07
от Vekach
Ошибка Declaration of ticketController

Автор Limonkevich

Ответов: 6
Просмотров: 1091
Последний ответ 10.03.2020, 11:51:24
от Limonkevich
Фатальная ошибка после включения плагина MP3 Browser Plugin

Автор tinka

Ответов: 7
Просмотров: 1852
Последний ответ 04.03.2020, 20:00:10
от glushilka