OctoberCMS Работа с массивами

У меня возникли проблемы с пониманием работы с массивами, я пытаюсь составить счет-фактуру, в которой по нему возвращаются цена и детали заказа, у меня большая часть работает, но я хотел бы отобразить элементы заказа. пока мой код выглядит так:

public $items;

public function prepareVars() {
$this->items = $this->items();
}public function items() {
$plates = Db::table('orders')->where('quote_no', $this->quoteNo())->value('total_plate_qty');
$hires = Db::table('orders')->where('quote_no', $this->quoteNo())->value('req_hires');
$hardcopy = Db::table('orders')->where('quote_no', $this->quoteNo())->value('req_hardcopy_proof');
$pdfproof = Db::table('orders')->where('quote_no', $this->quoteNo())->value('req_pdf_proof');
if ($plates < 1) {
$plates = "Total Plates:" . $plates;
} else {
$plates = "";
}
if ($pdfproof === 'yes') {
$pdfproof = 'PDF Proof @ R25.00';
} else {
$hires = '';
}
if ($hires === 'yes') {
$hires = 'HiRes PDF @ R50.00';
} else {
$hires = '';
}
if ($hardcopy === 'yes') {
$hardcopy = 'HardCopy Proof @ R150.00';
} else {
$hardcopy = '';
}
return Response::json([
'pdf' => $pdfproof,
'hires' => $hires,
'hardcopy' => $hardcopy,
'plates' => $plates
]);
}

Это сохраняет данные в моей базе данных следующим образом:

HTTP/1.0 200 OK
Cache-Control: no-cache
Content-Type:  application/json
Date:          Thu, 02 Nov 2017 08:26:11 GMT

{"pdf":"PDF Proof @ R25.00","hires":"HiRes PDF @ R50.00","hardcopy":"HardCopy Proof @ R150.00","plates":""}

Затем на внешнем интерфейсе я использую функцию ветки {% for%}, и это выглядит так:

{% set items = __SELF__.items %}
{% for item in items %}
<td>{{ item.pdf }}</br>{{ item.hires }}</br>{{ item.hardcopy }}</br>{{ item.plates }}</br></td>
{% endfor %}

Но это ничего не возвращает на переднем конце.

Такое чувство, что я все делаю неправильно, потому что я новичок с бэкендом dev: P
Любая помощь с благодарностью

1

Решение

Я думаю, вам не нужно конвертировать его в JSON, так как вам не нужно работать с Javascript

так просто замени свой код

return Response::json([
'pdf' => $pdfproof,
'hires' => $hires,
'hardcopy' => $hardcopy,
'plates' => $plates
]);

с этим :

return [
[
'pdf' => $pdfproof,
'hires' => $hires,
'hardcopy' => $hardcopy,
'plates' => $plates
]
];

как и в шаблоне, вы просматриваете элементы, поэтому вам нужно отправить его в массив. это весь PHP-код, поэтому нет необходимости в JSON.

мы возвращаем основной массив (Предметы) которые имеют свои элементы, и когда мы перебираем главный массив, мы каждый раз получаем его элементы (вещь)

Если вам нужна дополнительная помощь, пожалуйста, прокомментируйте.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector