Что я хочу спросить,
скажем у меня есть класс Info
и есть получатель в информации под названием getABC()
В контроллере я назначил что-то вроде
$info = new Info();
$variable['info'] =$info;
а также $variable
передается в поле зрения.
По-моему, я могу использовать что-то вроде $variable['info']->getABC()
?
Я знаю, что могу просто проверить это сам, и не смог сказать, что-то вроде этого не существует и $variable['info']
действительно показывает что-то, хотя
Я просто хочу убедиться, что $variable['info']->getABC()
Предполагается, что НЕ работает, или это должно, но я просто делаю что-то не так, поэтому я не мог получить то, что нужно.
фактический код ниже ……..
Учебный класс
class CreditCardPayment{
private $_card_type = '';
private $_card_number = '';
private $_card_number_last_4 = '';
public function setCardType($v)
{
$this->_card_type = $v;
return $this;
}
public function setCardNumber($v)
{
$this->_card_number = $v;
return $this;
}
public function setCardNumberLast4($v) {
$lastFourDigits = substr($v, -4);
$output = 'xxxx-xxxx-xxxx-' . $lastFourDigits;
$this->_card_number_last_4 = $output;
return $this;
}
public function getCardType() {
return $this->_card_type;
}
public function getCardNumber() {
return $this->_card_number;
}
public function getCardNumberLast4() {
return $this->_card_number_last_4;
}
}
и в контроллере, скажем, когда это успешно …. это будет что-то вроде этого, где $creditCardPayment = new CreditCardPayment
и я попробовал var_dump($creditCardPayment)
что информация определенно заполнена и, конечно, те private
переменные, поэтому я должен был использовать getter
вернуть их.
контроллер
$ordermess['creditCardPaymentInfo'] = $creditCardPayment;
\Yii::$app->session->set('ordermess', $ordermess);
$this->redirect('/pay/completed');
тогда, на мой взгляд … я сделал это как тестирование
<?php
echo '<pre>';
echo ($ordermess['creditCardPaymentInfo']->getCardNumberLast4());
echo '</pre>';
die;
?>
тогда, когда я загружаю страницу, я получаю ошибку.
Вызов функции-члена getCardNumberLast4 () для необъекта
Да. Это должно работать. Если в функции есть код очистки, назначающий переменные представлению, это может быть преобразование объекта в массив.
Других решений пока нет …