Форум русской поддержки Joomla!® CMS
10.12.2016, 18:39:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

получить id вставленной записи

 (Прочитано 463 раз)
0 Пользователей и 1 Гость смотрят эту тему.
spirit1086
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 135


« : 01.01.2016, 19:29:27 »

Здравствуйте, как получить id вставленной записи в админской части. Далее используем этот id для вставки в другую таблицу.
Для сохранения использую данную функцию в модели.
Код:
public function save($data)
    {
        if (parent::save($data))
{
            return true;
        }

        return false;   
    }
Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #1 : 01.01.2016, 19:38:12 »

public function save($key = null, $urlVar = null){
    if($_POST['jform']){
        foreach($_POST['jform'] as $key=>&$data){
            $value = trim($data);
        }}}
может чото не прав, не особо смотрел, вроде ровно

только для БД таблицу надо.вы решите что именно вы хотите очередное.
jform= ваша форма в любом виде, хоть в диве, можно в ленгвиче через файл.
« Последнее редактирование: 01.01.2016, 19:46:44 от vipiusss » Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #2 : 01.01.2016, 21:34:46 »

Полностью скопируйте метод save из родителя к себе в модель:
там код что то типа:
Показать текстовый блок

после if (!$table->store()){} id вставленной записи будет в $table->id! и можете его использовать где вам нужно!
Записан
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +176/-1
Offline Offline

Пол: Мужской
Сообщений: 1234


« Ответ #3 : 02.01.2016, 22:48:08 »

@spirit1086
Можно немного не так, если вам не нужны все эти строки:
Код
public function save($data)
   {
       if (parent::save($data))
{
           // узнаем ID
           $insertID = $this->getDbo()->insertid();
           // делаем здесь свои операции
           ...
           return true;
       }
 
       return false;  
   }
 
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #4 : 02.01.2016, 23:37:28 »

@spirit1086
Можно немного не так, если вам не нужны все эти строки:

Не очень такой вариант, ибо если какой то плагин отработает и вставит что то дополнительно, то вернет не тот ID...
Записан
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +176/-1
Offline Offline

Пол: Мужской
Сообщений: 1234


« Ответ #5 : 03.01.2016, 00:46:34 »

@Istaan
В своем варианте он не использует триггеры событий до сохранения и после, поэтому в его случае этого вполне достаточно. Для вашего варианта да, может быть с неверным ID, поэтому я и написал "если не нужны все эти строки".
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7784



« Ответ #6 : 03.01.2016, 01:00:15 »

так ведь они (триггеры) в parent::save сработают же
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #7 : 03.01.2016, 01:03:17 »

@Istaan
В своем варианте он не использует триггеры событий до сохранения и после, поэтому в его случае этого вполне достаточно. Для вашего варианта да, может быть с неверным ID, поэтому я и написал "если не нужны все эти строки".
триггеры вызывается в родителе как бы!
Записан
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +176/-1
Offline Offline

Пол: Мужской
Сообщений: 1234


« Ответ #8 : 03.01.2016, 01:20:58 »

@Istaan
Блин, вы правы. Это же legacy JModelAdmin... почему почти все компоненты используют эти старые модели? Azn
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #9 : 19.01.2016, 18:21:16 »

@Istaan
Блин, вы правы. Это же legacy JModelAdmin... почему почти все компоненты используют эти старые модели? Azn
А почему нет?
Записан
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +176/-1
Offline Offline

Пол: Мужской
Сообщений: 1234


« Ответ #10 : 19.01.2016, 19:54:51 »

@b2z
Потому что мне понравился новый подход в работе с "родными" J!3.x контроллерами-моделями, который использует компонент com_config. Взял на вооружение при рефакторинге своего магазина под J!3, немного доработав под свои нужды.
И мне кажется, что в дальнейшем Joomla будет развиваться в этом ключе.
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #11 : 19.01.2016, 22:33:06 »

Да, только вот подход опять поменяется в J4. Там будет хорошая революция Wink
Записан
SmokerMan
Профи
********

Репутация: +694/-25
Online Online

Пол: Мужской
Сообщений: 5225



« Ответ #12 : 20.01.2016, 14:52:46 »

Код:
$this->setState($this->getName(). '.id', $table->$pkName);
Код:
public function save($data)
    {
        if (parent::save($data))
{
            // узнаем ID
            $insertID = $this->getState($this->getName(). '.id');
            // делаем здесь свои операции
            ...
            return true;
        }
 
        return false;  
    }
Записан
AlekVolsk
Профи
********

Репутация: +317/-3
Offline Offline

Пол: Мужской
Сообщений: 6461



« Ответ #13 : 21.01.2016, 10:16:04 »

Да, только вот подход опять поменяется в J4. Там будет хорошая революция Wink
пруф?
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7784



« Ответ #14 : 21.01.2016, 11:02:40 »

Да, только вот подход опять поменяется в J4. Там будет хорошая революция Wink
пощупать бы хотя бы альфу...
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #15 : 21.01.2016, 15:10:02 »

пруф?
https://github.com/joomla-projects/joomla-pythagoras/wiki
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet