我正在使用一个主要基于 CodeIgniter 的自定义 PHP 框架。
在我的一个控制器文件中,我设置了一个名为 $orderId 的类属性。用户填写表格并提交后,我将进行数据库插入,获取订单号。并使用该订单号覆盖 $orderId 类属性值。
然后,我将重定向到要访问更新后的 $orderId 类属性值的提交页面。这最后一部分不起作用,提交类获取属性 $orderId 的空白值。
请问我哪里错了?下面的基本示例。也许由于重定向我不能这样做,应该使用会话变量来代替?
谢谢!
[编辑] 或者我可以将 orderId 作为重定向中的第三个 URL 参数传递。EGredirect('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);
}
}