我正在尝试松散地维护请求之间的持久数据。显然,数据库是维护数据的最佳方式,但在这种情况下,确切的正确性非常不重要。
我在我的一个 Controller 中使用静态变量,但它似乎在每次请求时都会重置。 laravel 是否会根据每个请求重新加载类?
示例代码:
class HomeController extends BaseController {
public static $test = 0;
public function getIndex() {
LogHelper::info("TEST: " . HomeController::$test);
HomeController::$test = HomeController::$test + 1;
return View::make('layouts.home.index');
}
}
这在每个请求上始终记录 0。有没有一种方法可以在不使用数据库的情况下维护持久变量?
编辑:我需要在所有用户/ session 之间共享该变量。就像点击计数器一样。
最佳答案
是的,Laravel 不会在请求之间保留变量,您需要使用 session 、数据库等手动保存数据。
例如,您可以使用 session 保存数据:
session(['data' => $data]);
并在下一个请求中获取数据:
$data = session('data');
更新
如果您想创建一些递增常量,请使用多个包之一将数据保存到配置文件中。 /config/my.php
配置示例:
<?php
return [
'value' => 20,
];
从应用程序的任何部分获取此信息:
$value = config('my.value');
另一种方法是将数据保存在数据库中。
关于php - Laravel 会在每次调用时重新加载类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41621156/