У меня есть данные базы данных, такие как text [mydata] some text [otherdata] some more text
, и я хочу заменить эти [mydata]
, [otherdata]
динамической информацией, такой как, например, заголовок категории.
Таким образом, результат моих данных будет выглядеть так:
text Category Title some text Category Desc some more text
вместо
text [mydata] some text [otherdata] some more text
Я думаю, что это может произойти preg_replace
, но не совсем уверен.
код
View::composer('*', function ($view) {
$notes = Notes::all();
foreach($notes as $note){
$descrip= $note->description;
}
$view->with('descrip', $descrip);
});
Подробнее
Таким образом, в основном $note->description
содержание - это данные:
text [mydata] some text [otherdata] some more text
Я хочу заменить эти элементы данными из таблицы categories
.
Есть идеи?
Обновление
хорошо, я копал и получил код ниже (используя str_replace
), однако у него есть некоторые проблемы,
View::composer('*', function ($view) {
//getting categories and pull out the values i want to use as `[....]`
$catC = Category::all();
foreach($catC as $catD){
$meta_title = $catD->title;
$meta_desc = $catD->meta_description;
$meta_tags = $catD->meta_tags;
}
//replace those categories values with element in database `[......]`
$seotemplates = SeoTemplate::all();
foreach($seotemplates as $seotemplate){
$myCustom = str_replace_array('[cattitle]', [$meta_title, $meta_desc, $meta_tags], $seotemplate->categories_desc_template);
}
$view->with('myCustom', $myCustom);
});
Вопросы
- Я могу получить только
[cattitle]
, но как насчет [catmeta] & [cattags]
?
$meta_title
всегда будет возвращать первое значение из таблицы категорий (например, если я посещаю HP
страницу категории, она возвращает ACER
как [cattitle]
или любые другие страницы категории, которые я посещаю. Это всегда ACER
Обновление 2
Я решил проблему 1 моего первого обновления, но проблема 2 осталась, вот обновленный код
View::composer('*', function ($view) {
//categories
$catC = Category::all();
$catD = [];
foreach($catC as $catD){
$catD = [
$cattitle = $catD->title,
$catmeta = $catD->meta_tags,
$catdesc = $catD->meta_description
];
}
$a1 = array("[cattitle]","[catmeta]","[catdesc]");
$seotemplates = SeoTemplate::all();
foreach($seotemplates as $seotemplate){
$myCustom = str_replace($a1, $catD, $seotemplate->categories_desc_template);
}
$view->with('myCustom', $myCustom);
});
Текущий выпуск:
$meta_title
всегда будет возвращать первое значение из таблицы категорий (например, если я посещаю HP
страницу категории, возвращается ACER
как
[cattitle]
или любые другие страницы категорий, которые я посещаю. Это всегда ACER