Я сделал как вы указали изначально, но у меня выборка в модели идет по ID, следовательно подставляя alias вместо ID выдаётся ошибка вывода данных.
Да вот сдался вам этот id! Я же вам даже код привел как метод getItem() в модели переделать что бы он получал запись по alias, а не по id!
Сижу вот думаю, если я буду делать выборку из БД по алиасу, как это отразится в будущем на выводе.. это не есть хорошо!
Да никак это не отразится на вводе, базе данных глубоко наплевать по какому полю вы делаете выборку! Тем более базе данных глубоко пофиг на вывод, она в ней не участвует!
Есть таблица:
id| alias| title
--------------
1 | test | lalal
---------------
Сделав запрос SELECT * FROM table WHERE id=1 или сделав запрос в базу SELECT * FROM table WHERE alias='test' вы получите одну и туже запись!
Что если выборку делать по ID в модели, а сам алиас отдавать в УРЛ, и уже на уровне РОУТЕРА как-то всё это дело обрабатывать?
А ещё можно масло мазать на масло, для большей маслянистости!
Вы понимаете что вы вместо одного запроса будете делать два ОДИНАКОВЫХ, первым запросом вы выберите запись SELECT id FROM table WHERE alias='test' что бы получить ID, передать его в модель в которпой выполнить SELECT * FROM table WHERE id=1, это же бред!
в роутер передавать что-то типа слуга ID:ALIAS, ведь значения ID и ALIASa у нас есть при первоначальном запросе, так почему бы их не использовать на уровне РОУТЕРА!
Вообще роутер ничего не знает ни про ID, ни про алиас, ни про слуг, ни про что! Он только переделывает 1:lalala в 1-lalal, а что вы ему передадите ему все равно!
echo JRoute::_('index.php?id=lala:lala'); выдаст ни что иное как site.ru/lala-lala.html
перечитал статью http://ссылка вырезана, так как домен распространяет вирусы/blog/joomla/routing-v-joomla-jroute.html ещё раз, там нет описания того как использовать ALIAS "категории/новости/статьи.html" и т.д.
Там много чего нет, там написаны основы, и статье уже четыре года почти, за это время мой стиль кода в Joomla 5 раз изменился!