Laravel如何在会话Laravel中存储额外的数据/值

时间:2016-06-02 16:24:47

标签: laravel session laravel-5.1

我在laravel登录中使用默认的auth()(电子邮件和密码) 现在我尝试从文本字段中获取用户的输入,如(年龄或城市)

现在我想在我的会话中存储(年龄/城市)。

帮帮我

5 个答案:

答案 0 :(得分:4)

您可以使用session()帮助:

session('age', 18); // saves age into session

$age = session('age')`; // gets age from session

<强>更新

如果要在用户注册后保存年龄和城市,则应将此数据存储在数据库中,而不是存储在会话中。您可以使用create

app\Http\Controllers\Auth\AuthController.php方法添加一些文件

答案 1 :(得分:1)

您可以使用

Session::put('key', 'value');

从会话使用中获取密钥

Session::get('key');

您可以将session()辅助函数用作 @Alexey Mezenin 答案。

<强> Laravel Session Documentation

答案 2 :(得分:0)

好的,让我来启发你。如果你想把它存储在会话中就这样做。

int
main(int argc, char *argv[])
{
    int t, tt, status, i;
    i = 1;

    for (i=1; i < argc; i++)
    {
        t = parse(argv[i]); 
        tt = wait(&status);
        assert(tt == t);
        if ((! WIFEXITED(status)) || (WEXITSTATUS(status) != 0)) {
            fprintf(stderr, "Command '%s' failed, aborting...", argv[i]));
            return 1;
        }

    }
    return 0; 
}

但这不像我们在Laravel中那样做框架,它使用模型

每次刷新页面时,一旦用户通过身份验证,应用程序将查找数据库用户表是否存在于表中的用户。经过身份验证的用户模型也是用户模型。通过它,我们可以提取任何列。首先是为User类(Model)$ fillable数组添加额外的字段。  所以它看起来像这样。

<强> user.php的

session('country', $user->country); // save
$country = session('country')`; // retrieve

所以只需使用Request class或Auth facade登录用户名和密码即可。门面不是太推荐所以这里为了你的好,作为一个新的我会说如何使用请求。假设您要在TestController.php中检索您的Authenticated用户所在国家/地区,这里是如何在方法中使用它。

<强> TestController.php

protected $fillable = ['username', 'password', 'remember_token', 'country'];

答案 3 :(得分:0)

使用请求

公共功能ControllerName(请求$请求){

   $request->session()->put('session_age', $age);

}

获取session_age

$get_session_age = $request->session()->get('session_age');

使用会话

   public function ControllerName (){

       Session::put('age',$age);

    }

获取会话

$session_age = Session::get('age');

不要忘记在控制器中定义会话或请求!!!

use App\Http\Requests;
use Session;

答案 4 :(得分:0)

要在控制器中使用会话,您需要先在控制器中包含会话

use Session;

之后会话中的商店数据。有几种方法可以做到这一点。我更喜欢这个(在控制器中)

session()->put('key',$value);

要在View中显示会话数据,您可以这样做

@if(Session::has('key'))
I'v got session data
@else
I don't have session data
@endif

要在Controller中获取会话数据,您可以这样做

session()->get('key')
//or
session()->get('key','defaul_value_if_session_dont_exist')

在会话中完成数据后,您可以将其删除(在控制器中)

session()->forget('key');

会话的所有这些基本用法都在官方Laravel文档here中有详细记录。

希望它可以帮到你