Приветствую. У меня есть много разных моделей, например, Role, Rank и другие. К каждой из этих моделей мне нужно хранить подпись в разных падежах и числах, чтобы потом отображать в интерфейсе. Например, есть Role модератора, тогда я хочу хранить такую информацию: "модератор", "модератора", ... "модераторами", ... Информацию вводит пользователь. Как это лучше сделать?
Поскольку для всех моделей одно описание, я думаю сделать одну модель Label и таблицу к ней со столбцами object_id, object_type, <все падежи и падежи с множественным числом> и привязать к нужным объектам связью один к одному. Но выглядит не очень. К тому же я не знаю, как выполнить такую привязку, она идет по двум столбцам, но hasOne работает только с одним. Буду благодарен за помощь.
UPD: Для такой формы связей, возможно, подойдет полиморфная привязка.
Я бы не советовал так извращаться. У меня на сайте есть вывод городов, и когда мне нужно вывести название города в определенном падеже я использую библиотеку morphos
Для примера чтобы вывести название в предложном падеже я написал в модели метод
public function getNameRpAttribute()
{
// Имя в предложном падеже
return \morphos\Russian\GeographicalNamesInflection::getCase($this->attributes['name_ru'], 'предложный');
}
С данной библиотекой вы сможете сделать многие вещи касаемые склонений слов и будет вам счастье и счастье человеку которому нужно будет потом редактировать контент