【问题标题】:Laravel - How to add data to sessionLaravel - 如何将数据添加到会话
【发布时间】:2017-04-18 05:48:41
【问题描述】:

您好,我想在会话中存储以下选择并在另一个 xxxx.blade.php 页面中回显。每当我选择新的时,都需要删除以前的选择。

DashboardController.php

$this->data['companyNames'] = \DB::table('tb_users')->orderBy('company_name')->lists('company_name', 'id');

index.blade.php

<form action="impersonate" method="post">
{!! Form::select('id', $companyNames) !!}
<button type="submit" value="Submit">Go</button>
</form>

【问题讨论】:

  • 你不应该试图劫持另一个用户会话
  • 我知道但是怎么做?
  • 您真的想劫持活跃用户的会话,还是仅仅以其他用户身份登录?
  • 我的应用程序只需要显示用户生成的内容。所以我需要简单地以其他用户身份登录并发布任务。任务行也有username 字段。因此,通过以下查询,该表将仅返回用户生成的内容。 return " WHERE username = '".Auth::user()-&gt;username."' ";

标签: php mysql laravel session


【解决方案1】:

您只需将用户切换到其他用户即可:

Auth::login($user);

这是很简单的:

使用输入创建一个表单:

<form action="/impersonate" method="post">
    {{ csrf_field() }}

    <select name="user_id">
      <option value="1">User 1</option>
      <option value="2">User 2</option>
      <option value="3">User 3</option>
      <option value="4">User 4</option>
    </select>

    <your submit button>
</form>

以及登录用户的路径:

Route::post('impersonate', function() {
    $user = User::find(request()->get('user_id'));

    Auth::login($user_id);

    return Redirect::to('/');
});

【讨论】:

  • 非常感谢。如何将它与 html 中的选择框一起使用?
  • Controller.php $this-&gt;data['firstNames'] = \DB::table('tb_users')-&gt;orderBy('first_name')-&gt;lists('first_name', 'id'); index.blade.php {!! Form::select('first_name', $firstNames) !!}
  • 能否请您按照此修改您的html代码
  • 这是 Laravel 4 吗? Form::select() 不是 Laravel 5,这是很久以前放弃的。但你基本上必须做你已经做过的事情。
  • 它是 Laravel 5.1 顺便说一下登录块的路由给出了语法错误。请您仔细检查一下。
猜你喜欢
  • 2016-04-10
  • 2015-02-23
  • 2014-07-04
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
  • 2019-02-17
  • 2020-05-25
  • 1970-01-01
相关资源
最近更新 更多