Вообщем есть такая проблема, я вывожу данную на страницу в 3 разных массивах. Вот так:
public function actionPayment() {
$modelPaid = new NewPaid();
$payments = Payments::find()->where(['user_id' => Yii::$app->user->identity->id, 'type' => Payments::TYPE_WRITEOFF,
'status' => Payments::STATUS_PAID])->with('shop')->asArray()->all();
$deposit = Payments::find()->where(['user_id' => Yii::$app->user->identity->id, 'type' => Payments::TYPE_REFILL,
'status' => Payments::STATUS_PAID])->limit(3)->asArray()->all();
$invoice = Payments::find()->where(['user_id' => Yii::$app->user->identity->id, 'type' => Payments::TYPE_REFILL,
'status' => Payments::STATUS_PAID])->andWhere(['!=', 'invoice_number', ''])->limit(3)->asArray()->all();
return $this->render('payment', compact('d', 'i', 'modelPaid', 'payments', 'deposit', 'invoice'));
}
И дело в то что 2 из них, а именно $deposit и $invoice, мне надо подгружать там есть кнопка "загрузить еще". Я реализовал данную погрузку через 2 отдельных action`а:
public function actionPaymentDeposit($d) {
if ($d == '') {
$d = 1;
}
$modelPaid = new NewPaid();
$payments = Payments::find()->where(['user_id' => Yii::$app->user->identity->id, 'type' => Payments::TYPE_WRITEOFF,
'status' => Payments::STATUS_PAID])->with('shop')->asArray()->all();
$deposit = Payments::find()->where(['user_id' => Yii::$app->user->identity->id, 'type' => Payments::TYPE_REFILL,
'status' => Payments::STATUS_PAID])->limit(3 * $d)->asArray()->all();
return $this->render('payment', compact('d', 'deposit', 'modelPaid', 'payments'));
}
public function actionPaymentInvoice($i) {
if ($i == '') {
$i = 1;
}
$modelPaid = new NewPaid();
$payments = Payments::find()->where(['user_id' => Yii::$app->user->identity->id, 'type' => Payments::TYPE_WRITEOFF,
'status' => Payments::STATUS_PAID])->with('shop')->asArray()->all();
$invoice = Payments::find()->where(['user_id' => Yii::$app->user->identity->id, 'type' => Payments::TYPE_REFILL,
'status' => Payments::STATUS_PAID])->andWhere(['!=', 'invoice_number', ''])->limit(3 * $i)->asArray()->all();
return $this->render('payment', compact('i','invoice', 'modelPaid', 'payments'));
}
Но так выходит сильно много дублированного кода, как это всё дело можно уместить в один action, и что бы всё работало корректно? Вот частичный код страницы:
<?php Pjax::begin(); ?>
<div class="check-status__wrapp">
<?php if(!empty($invoice)): ?>
<?php foreach($invoice as $inv): ?>
<div class="check-status__block">
<p class="check-status__text">Счет №
<span class="check-status__span"><?= $inv['invoice_number']; ?></span> от <?=Yii::$app->formatter->asDate($inv['invoice_date']); ?>
</p>
<p class="check-status__text">
<span class="check-status__span"><?=Yii::$app->formatter->asDecimal($inv['amount'], 2); ?></span> руб.
</p>
<?php if ($inv['status'] == Payments::STATUS_PAID): ?>
<p class="check-status__condition check-status__condition_on">Оплачен</p>
<?php else: ?>
<p class="check-status__condition check-status__condition_off">Не оплачен</p>
<?php endif; ?>
</div>
<?php endforeach; ?>
<?php else: ?>
<div class="check-status__block">
<div class="empty_res">
Пополнений еще не было
</div>
</div>
<?php endif; ?>
</div>
<a href="<?=Url::to(['/user/payment-invoice', 'i' => $i++]); ?>" class="show-more">Показать ещё</a>
<?php Pjax::end(); ?>
<?php Pjax::begin(); ?>
<ul class="fee-history__list fee-history__list_history">
<?php if(!empty($deposit)): ?>
<?php foreach($deposit as $dep): ?>
<li class="fee-history__item">
<div class="fee-history__col">
<p><?=Yii::$app->formatter->asDate($dep['date']); ?></p>
</div>
<div class="fee-history__col">
<p>
<span class="s-medium">
<?=Yii::$app->formatter->asDecimal($dep['amount'], 2); ?>
</span> руб.
</p>
</div>
<div class="fee-history__col">
<?php if ($dep['way'] == 0): ?>
<p>Карта</p>
<?php else: ?>
<p>Счёт</p>
<?php endif; ?>
</div>
<div class="fee-history__col">
<p class="s-fz12px">
<?php if ($dep['way'] == 1): ?>
<a href="" class="fee-history__link">скачать акт</a>
<?php endif; ?>
</p>
</div>
</li>
<?php endforeach; ?>
<?php else: ?>
<li class="fee-history__item">
<div class="empty_res">
Пополнений еще не было
</div>
</li>
<?php endif; ?>
</ul>
<a href="<?=Url::to(['/user/payment-deposit', 'd' => $d++]); ?>" class="show-more">Показать ещё</a>
<?php Pjax::end(); ?>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Создаю в папке с помощью цикла for документы с разным наполнениемЭто наполнение подтягивают из json
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме
Сколько максимум строк и столбцов помещается в mysql? и как этот лимит расширить?