У меня есть таблица базы данных с названием «услуги». С помощью функции ниже я получаю все записи из этой таблицы. Эта функция находится в моем ServicesController.php.
public function index() {
$roadmap = Roadmap::all();
return view('services', compact('roadmap'));
}
Теперь, на мой взгляд, я также делаю следующее:
<?php
foreach($roadmap as $roadmap_item) {
$new = array();
$splitted = explode("|", $roadmap_item->steps);
foreach($splitted as $split) {
$new = explode(":", $split);
}
}
?>
Допустим, я получил строку «step1: hello | step2: bye» обратно из «$ roadmap-item-> steps». Я разделяю их на подстроки с помощью explode и т. д. Это, кстати, работает.
Но есть ли способ манипулировать строкой в контроллере, чтобы мое представление было красивым и чистым без большого количества php-кода и по-прежнему оставалось переменной $ roadmap со всеми записями базы данных.
С уважением,
Дилан
в контроллере может использоваться объединение массивов, вы можете сделать это только с одной переменной.






Я думаю, вы можете делать очень похожие вещи на своем контроллере. Сначала выполните foreach в своем контроллере, затем внесите изменения в каждый элемент своей коллекции и передайте новую коллекцию.
Например:
$roadmaps = Roadmap::all();
foreach($roadmaps as $roadmap){
$roadmap->something = " the changes you want to do as string " . $roadmap->something;
$roadmap->save();
}
return view('services', compact('roadmaps'));
или же
$roadmaps = Roadmap::all();
$new = new Collection();
foreach($roadmaps as $roadmap){
$new[] = array('roadmap' => $roadmap, 'something' => $roadmap->string . " etcetc ")
$new->save();
}
return view('services', compact('new'));
может ты найдешь это здесь laravel.com/docs/5.6/helpers