Closed DifficultPhil closed 1 year ago
При заходе на страницу со статьей вызывайте seo()->title('Мета тег') и он будет выводится либо добавьте seo()->title('Мета тег', true) и также сохранится в базе и закешируется
я сделал реализацию проверки, есть установлено ли сео путем
if (seo()->meta()->title() != null) {
seo()->title( 'title', true);
seo()->description('desc', true);
seo()->keywords('keywords', true);
} else {
seo()->meta()->title();
seo()->meta()->description();
seo()->meta()->keywords();
}
и получаю много запросов от модуля, не подскажите в чем ошибка? Мне кажется тут достаточно 1 select, 1 inser, 1update
пример при отсутсвии сео
select * from `seo` where `url` = '/item/item555' limit 1
select * from `seo` where (`url` = '/item/item555') limit 1
insert into `seo` (`url`, `title`, `updated_at`, `created_at`) values ('/item/item555', 'dfdsgsdgsdg', '2023-05-26 09:26:57', '2023-05-26 09:26:57')
select * from `seo` where `url` = '/item/item555' limit 1
select * from `seo` where `url` = '/item/item555' limit 1
select * from `seo` where (`url` = '/item/item555') limit 1
update `seo` set `description` = 'vgfgfdgfg', `seo`.`updated_at` = '2023-05-26 09:26:58' where `id` = 10
select * from `seo` where `url` = '/item/item555' limit 1
select * from `seo` where `url` = '/item/item555' limit 1
select * from `seo` where (`url` = '/item/item555') limit 1
update `seo` set `keywords` = '5465456445454', `seo`.`updated_at` = '2023-05-26 09:26:59' where `id` = 10
select * from `seo` where `url` = '/item/item555' limit 1
select * from `seo` where `url` = '/item/item555' limit 1
я сделал реализацию проверки, есть установлено ли сео путем
if (seo()->meta()->title() != null) { seo()->title( 'title', true); seo()->description('desc', true); seo()->keywords('keywords', true); } else { seo()->meta()->title(); seo()->meta()->description(); seo()->meta()->keywords(); }
и получаю много запросов от модуля, не подскажите в чем ошибка? Мне кажется тут достаточно 1 select, 1 inser, 1update
пример при отсутсвии сео
select * from `seo` where `url` = '/item/item555' limit 1 select * from `seo` where (`url` = '/item/item555') limit 1 insert into `seo` (`url`, `title`, `updated_at`, `created_at`) values ('/item/item555', 'dfdsgsdgsdg', '2023-05-26 09:26:57', '2023-05-26 09:26:57') select * from `seo` where `url` = '/item/item555' limit 1 select * from `seo` where `url` = '/item/item555' limit 1 select * from `seo` where (`url` = '/item/item555') limit 1 update `seo` set `description` = 'vgfgfdgfg', `seo`.`updated_at` = '2023-05-26 09:26:58' where `id` = 10 select * from `seo` where `url` = '/item/item555' limit 1 select * from `seo` where `url` = '/item/item555' limit 1 select * from `seo` where (`url` = '/item/item555') limit 1 update `seo` set `keywords` = '5465456445454', `seo`.`updated_at` = '2023-05-26 09:26:59' where `id` = 10 select * from `seo` where `url` = '/item/item555' limit 1 select * from `seo` where `url` = '/item/item555' limit 1
Оптимизировал в апдейте 0.10.2 но вы все равно должны понимать что когда сохраняете параметр то под капотом вызывается updateOrCreate который в себя включает два запроса - select и update/insert и после update/insert кеш будет сброшен и последует запрос на данные
После фикса количество запросов сократится но они происходят только в момент сохранения, сам процесс сохранения у вас не должен быть на каждый запрос, вы должны сохранять только в случае когда мета еще не задана или ее надо изменить
Доброго дня! У меня есть сеть сайт на Laravel, есть новости, Я бы хотел автоматически проставить метатеги для существующих новостей , их более 1000, можно ли это сделать с помощью вашего компонента?