Laravel - Соглашения об именах баз данных, таблиц и столбцов?

Раздел 2 из RFC 2368 говорит, что поле body должно быть в формате text/plain, поэтому вы не можете делать HTML.

Однако даже если вы используете простой текст, возможно, что некоторые современные почтовые клиенты отображали URL как ссылку на клики в любом случае.

24
задан The Dude 19 September 2014 в 06:31
поделиться

2 ответа

У Laravel есть собственное соглашение об именах. Например, если ваша модель называется User.php, то Laravel ожидает, что класс «Пользователь» будет внутри этого файла. Также ожидается users таблица для User модели. Однако вы можете переопределить это соглашение, определив свойство таблицы в вашей модели, например,

    class User extends Eloquent implements UserInterface, RemindableInterface {
        protected $table = 'user';
    }

Из официальной документации Laravel:

Обратите внимание, что мы не сообщили Eloquent, какую таблицу использовать для нашей модели пользователя. Имя класса в нижнем регистре во множественном числе будет использоваться в качестве имени таблицы, если явно не указано другое имя. Таким образом, в этом случае Eloquent будет предполагать, что модель User хранит записи в таблице users. Вы можете указать пользовательскую таблицу, определив свойство $table в вашей модели

Если вы будете использовать идентификатор пользовательской таблицы в другой таблице в качестве внешнего ключа, то это должен быть случай со змеей, подобный user_id, так что он может быть использован автоматически в случае отношения. Опять же, вы можете переопределить это соглашение, указав дополнительные аргументы в функции отношений. Например,

    class User extends Eloquent implements UserInterface, RemindableInterface {
        public function post(){
            return $this->hasMany('Post', 'userId', 'id');
        }
    }

    class Post extends Eloquent{
        public function user(){
            return $this->belongsTo('User', 'userId', 'id');
        }   
    }

Документы для красноречивых отношений Laravel

Для других столбцов в таблице вы можете называть их как хотите.

Я предлагаю вам один раз просмотреть документацию.

33
ответ дан Yi Jiang 19 September 2014 в 06:31
поделиться

Соглашения об именах таблиц по умолчанию могут легко вызвать конфликты с установкой нескольких пакетов, которые могут случайно иметь одинаковые имена классов. Решением было бы назвать таблицы как: [vendor]. [Package]. [Class], что соответствует применению пространства имен в Laravel.

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

-1
ответ дан Martino 19 September 2014 в 06:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: