【问题标题】:Save Post variable in Drupal 8 Session an make available globally在 Drupal 8 Session 中保存 Post 变量并使其全局可用
【发布时间】:2017-04-29 21:13:08
【问题描述】:

我现在正在尝试在会话中保存数据以用于查看上下文过滤器等。

用户应该从下拉列表中选择一些东西 (1,2,3,4),保存在 post 变量中并写入会话。

我尝试了几种方法,但都没有奏效。

$tempstore = \Drupal::service('user.private_tempstore')->get('mymodule_name');
$tempstore->set('my_variable_name', $some_data);

从另一篇文章中,放入一个以

结尾的模块

"致命错误:调用成员函数 getSession() on null in /usr/www/users/smplce/nordisch/core/modules/user/src/PrivateTempStore.php 210号线”

将其放入模块中:

$_SESSION['area_session']['area'] = "test";

不会导致错误,而是尝试像这样在 page.html.twig 中输出:

{{ area_session.area }}

它什么也没做。

请帮帮我,我不是真正的程序员,但想解决这个问题。

提前致谢!

【问题讨论】:

    标签: php symfony session drupal session-variables


    【解决方案1】:

    在 Drupal 7 中,您可以使用 PHP 超级全局变量 $_GET、$_POST、$_SERVER 和 $_COOKIE 访问 GET、POST、SERVER 和 COOKIE 变量。

    示例: -> Drupal 7:

    $query = $_GET['q']; // query string param
    $myparam = $_POST['myparam']; // form param
    $request_method = $_SERVER['REQUEST_METHOD']; // server variable
    $mycookie = $_COOKIE['mycookie']; // cookie
    

    在 Drupal 8 中,您需要使用 Symfony Request 对象。

    ->Drupal 8:

    $query = \Drupal::request()->query->get('q'); // query string param
    $name = \Drupal::request()->request->get('name'); // form param
    $request_method = \Drupal::request()->server->get('REQUEST_METHOD'); // server variable
    $mycookie = \Drupal::request()->cookies->get('mycookie'); // cookie
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多