我想將相同的記錄合并到:
Audi A3 / S3 / RS3
8V / 8Y
Audi A4 / S4 / RS4
B8 / B9
等等
但現在看起來是這樣
這是我的存盤庫代碼:
public function cars(): array
{
$conn = $this->getEntityManager()->getConnection();
$sql = 'select car.name as car, model.name as model from car join model on car.id = model.car_id';
$stmt = $conn->prepare($sql);
// returns an array of arrays (i.e. a raw data set)
return $stmt->executeQuery()->fetchAllAssociative();
}
枝條:
{% for car in cars %}
{{ car.car }}
{{ car.model }}
{% endfor %}
控制器:
public function index(ModelRepository $modelRepository): Response
{
$cars = $modelRepository->cars();
return $this->render('index/index.html.twig', [
'cars' => $cars,
]);
}
你能給我一些提示如何讓它正常作業嗎?
uj5u.com熱心網友回復:
首先將存盤庫代碼從“sql”更改為 querybuilder:
public function cars()
{
return $this->createQueryBuilder('m')
->leftJoin('m.model', 'model')
->addSelect('model')
->addOrderBy('model.car', 'asc')
->getQuery()
->getResult()
;
}
然后進行一些 Twig 更改:
{% for car in cars %}
{{ car.name }}
{% for model in car.model %}
{{ model.name }}
{% endfor %}
{% endfor %}
uj5u.com熱心網友回復:
正如評論中提到的,您需要對生成的資料陣列進行重構,即準備所需的資料結構并將模板傳遞給 twig。
控制器方法:
public function index(ModelRepository $modelRepository): Response
{
$cars = [];
foreach ($modelRepository->cars() as $item) {
$cars[$item['car']][] = $item;
}
return $this->render('index/index.html.twig', [
'cars' => $cars,
]);
}
枝條:
{% for key, car in cars %}
{{ key }}
{% for item in car %}
{{ item.model }}
{% endfor %}
{% endfor %}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/475563.html
