Jump to content

Как сформировать ссылку на редактирование записи?


vinegredz
 Share

Recommended Posts

Здравствуйте!

 

Не могу понять, в каком момент я ошибаюсь. Вот такой код в шаблоне categoryTable:

 

{{foreach $groups as $group}}
{{$group_find = \IPS\Db::i()->select( '*', 'cms_custom_database_6', array( 'field_32=?', $group->id ) )->first();}}
{$group_find->url('edit')}
{{endforeach}}

Я подглядел как работает шаблон recordRow и там вроде тоже массив rows в row.

 

Получаю ошибку:

 

Call to a member function url() on array

Link to comment
Share on other sites

$group_find в вашем случае просто результирующий массив данных из бд. А row там явно не массив, а объект. Если хотите использовать этот метод нужно создать объект класса которым является row, или просто вручную составить ссылку на основе ваших данных, к примеру ...do=edit&id={$group_find["id"]}

Link to comment
Share on other sites

Блин, хотел сделать по красоте все, но до ООП наскоком взять не получилось еще. Буду формировать ссылку по старинке. Спасибо!

Link to comment
Share on other sites

{{$row = \IPS\Db::i()->select( '*', 'cms_custom_database_6', array( 'field_32=?', $group->id ) )->first();}}
{{$item = \IPS\cms\Records6::constructFromData( $row );}}
{$item->url('edit')}

Только помните, что метод ->first() выбрасывает исключение если результат вернул ноль строк. Если его не перехватить, выполнение скрипта закончится с ошибкой.

Link to comment
Share on other sites

Работает идеально! Большое спасибо!

 

А вот про конструкции вроде \IPS\cms\Records6::constructFromData написано в оф. документации для девелоперов?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...