Я использую пользовательский PHP каркас, который в значительной степени основан на CodeIgniter.
В одном из моих файлов контроллера я установил свойство класса с именем $ orderId. После того, как пользователь заполнит форму и отправит ее, я сделаю вставку в БД и получу номер заказа. и переопределить значение свойства класса $ orderId этим номером заказа.
Затем я перенаправлю на страницу отправки, где я хочу получить доступ к этому обновленному значению свойства класса $ orderId. Эта последняя часть не работает, класс submit получает пустое значение для свойства $ orderId.
Куда я иду неправильно, пожалуйста? Основа c пример ниже. Может быть, я не могу сделать это из-за перенаправления и должен вместо этого использовать сеансовую переменную?
Спасибо!
[EDIT] Или я мог бы передать orderId в качестве 3-го параметра URL в перенаправлении , EG redirect('orders/submit/'.self::$orderId);
, в этом случае я превращу все экземпляры self::
в $this->
для области действия уровня класса.
class Orders extends Controller {
private static $orderId;
public function __construct() {
// assign db model
}
public function index() {
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$data = [
// form data to pass to db model
];
self::$orderId = 12345; // example order no. return from db model
if(!empty(self::$orderId)) {
redirect('orders/submit');
}
}
}
public function submit() {
$data = [
'orderId' => self::$orderId
];
$this->view('orders/submit', $data);
}
}