在laravel的雄辩中只返回一个列值

时间:2017-05-09 11:50:06

标签: laravel eloquent laravel-eloquent

我有一个包含列语言的表设置。我只想获取用户ID是特定用户ID的语言。我已经定义了名为settings的模型,这就是我获取用户id为给定用户ID的所有列的方式。

$uid = Auth::id();
echo Settings::where('user_id', '=', $uid)->first();

如何指定我只想要在eloquent中返回的语言列的值?

我想使用我存储的语言切换语言,如

  if (!\Session::has('locale')) {
      \Session::put('locale', $language);
  } else {
      Session::put('locale', $language);
  }

2 个答案:

答案 0 :(得分:2)

您可以使用以下查询来获取专栏。

$settings = Settings::select(['language'])->where('user_id', '=', $uid)->first();

在下一步中,获取属性并设置为Session:

Session::put('locale', $settings->language);

您不需要此条件声明。新的Laravel版本支持此

$request->session()->put('locale', $settings->language);

答案 1 :(得分:0)

使用此,

$settings = Settings::select('language')->where('user_id', '=', $uid)->first();

然后,

Session::put('locale', $settings->language);

然后您可以使用会话变量'local'。 问候。