Отдать 404 если param в waRequest отличен от заданного Есть решение
Замечу сразу, что я использую чистый фреймворк без каких либо ShopScript и прочего.
Ситуация такова. Есть список товаров в базе (iphone4s, iphone5, iphone5c, iphone5s и т.д.). Мне было крайне необходимо, чтобы URL выглядет так /catalog/iphone4s.php — этого я добился при помощи маски в раутинге:
'url' => '<model>.php'
Отдачу шаблона еще не настраивал, проверяю всё на дебаг странице фреймоврка.
Проблема в том, что какой бы набор символов перед расширением .php ни ставил, раутинг отдает дебаг страницу, а нужно, чтобы отдавал 404, при условии если такой модели айфона нет. Например, на /catalog/iphone4444s.php нужно отдать 404 ошибку, т.к. в базе нет модели айфона iphone4444s.
Направьте меня в правильное русло. Как я понимаю, в файле routing.php нужно делать вызов к базе, собирать в массив все имеющиеся значения моделей айфонов и подставлять в маску этот массив?
В общем, мозг на бекрень, не пойму на какой стадии и в каком файле делать проверку условия наличия модели айфона в базе.
3 ответа
Если у вас чистый фреймворк, то где же хранятся все товары?
В Shop-script в /lib/actions/frontend/shopFrontendProduct.action.php прописано
в routing вам нужно направлять на action/controller, который будет проверять данные и формировать либо страницу либо отказ.
Товары хранятся в MySQL-базе. А в базу они попадают через кастомное приложение.
Спасибо, вы дали наводку. В экшене нужно делать запрос в БД на наличие записи с соответствующим полем.