Таблицы сущностей модуля в БД по типу [название_модуля]_[сущность]

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
iamguruman
Сообщения: 72
Зарегистрирован: 2018.05.10, 08:26

Таблицы сущностей модуля в БД по типу [название_модуля]_[сущность]

Сообщение iamguruman » 2019.11.11, 14:13

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

хочу отделить таблицы модулей в БД от "основных"
основными например считаю user и иные таблицы которые "системные", в кавычках потому что "условно" разделяю, например, таблицу пользователей и таблицу "клиенты"

использую модульную систему, создаю новый модуль все что имеет к нему отношение хочу внутри "модуля" делать, в т.ч. и таблицы именовать для собственного удобства, чтобы в базе разделять "логически" таблицы тоже

подскажите, пожалуйста, как сделать так чтобы

на пример модуля "Клиенты" (modules/customers/...)
делаю модель modules/customers/model/Customer, контроллер modules/customers/controllers/CustomerControllers, вьюшки Use /modules/customers/view/customer/... index.php/view.php/create.php и т.д.

хочу таблицу именовать customers_customer

а как потом работать с такой таблицей?.. не очень понимаю... до этого работал с таблицами без наименование модуля в название таблицы...
т.е. хочу название модуля использовать как префикс таблицы

потом по аналогии сделать таблицу customers_bank (банковские реквизиты, будет связующее поле customers_bank.customers_customer_id связанное с customer_customer.id), создам такой же контроллер\модель\вьюшки

что стоит учесть? с какими проблемами могу столкнуться? подскажите, пожалуйста, если у вас такой опыт был

я так понимаю префиксы распространяются на весь проект... и прописываются в подключении к БД... но это не то что в данном случае я имею ввиду

yiiliveext
Сообщения: 498
Зарегистрирован: 2019.08.13, 01:49

Re: Таблицы сущностей модуля в БД по типу [название_модуля]_[сущность]

Сообщение yiiliveext » 2019.11.11, 14:47

Код: Выделить всё

class Customer extends \yii\db\ActiveRecord
{
    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return 'customers_customer';
    }

//........
}

iamguruman
Сообщения: 72
Зарегистрирован: 2018.05.10, 08:26

Re: Таблицы сущностей модуля в БД по типу [название_модуля]_[сущность]

Сообщение iamguruman » 2019.11.11, 14:48

по логике для удобства работы с ссылками мне нужно исправлять только в контроллере название контроллера, чтобы получались "юзер-френдли" адреса, например,

файл "/controllers/CustomersCustomerController.php" переименовать в "CustomerController.php "
и "class CustomersCustomerController extends Controller" переименовать в "class CustomerController extends Controller"

с "технической" точки зрения впринципе проблем это никакой не доставляет вообще... как я понимаю...
Последний раз редактировалось iamguruman 2019.11.11, 14:49, всего редактировалось 1 раз.

iamguruman
Сообщения: 72
Зарегистрирован: 2018.05.10, 08:26

Re: Таблицы сущностей модуля в БД по типу [название_модуля]_[сущность]

Сообщение iamguruman » 2019.11.11, 14:48

yiiliveext писал(а):
2019.11.11, 14:47

Код: Выделить всё

class Customer extends \yii\db\ActiveRecord
{
    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return 'customers_customer';
    }

//........
}
ок, спасибо
хорошее замечание

iamguruman
Сообщения: 72
Зарегистрирован: 2018.05.10, 08:26

Re: Таблицы сущностей модуля в БД по типу [название_модуля]_[сущность]

Сообщение iamguruman » 2019.11.11, 15:29

в итоге шаблон действий таков

1. гии сгенерить модуль customers
2. сделать таблицу customers_customer
3. сгенерить модель customers_customer (наверное удобнее сразу ее переименовать в customer - я так еще не делал)
4. сгенерить круд модели CustomersCustomer
5. исправить:
* моделиь с CustomersCustomer на Customer
* контроллер CustomersCustomerController на CustomerController
* переименовать папку для вью с customers-customer на customer

p.s. позже попробую (3) наверное удобнее сразу ее переименовать в customer... если ошибок не будет, то поидее шаг 5 должен отвалиться сам собой и (4) шаг будет генериться круд модели Customer

iamguruman
Сообщения: 72
Зарегистрирован: 2018.05.10, 08:26

Re: Таблицы сущностей модуля в БД по типу [название_модуля]_[сущность]

Сообщение iamguruman » 2019.11.11, 21:06

Попробовал вариант 3 - сразу переименовал. Шаг 4 и 5 не потребовались. Удобно очень

Ответить