Laravel-通过表单输入设置会话

时间:2018-07-11 08:22:28

标签: php laravel laravel-5 laravel-views laravel-session

我无法在视图中显示会话值。我只想显示它以查看它是否在控制器内正确设置。是否在控制器中正确设置?我该如何检查? 我有这样的看法:

<div class="panel panel-success">
                <form action="{{ route('get_table') }}" method="POST">
                    {{ csrf_field() }}
                    @foreach($tables as  $data)                   
                    <button type="submit" name="tables" class="btn btn-primary" value="{{ $data->id }}">
                        {{$data->name }}
                    </button>
                    @endforeach
                </form>
                {{ Session::get('table_id') }}
            </div>

这在ListController中:

public function index() {
    $tables = DB::table('tables')->get();
    return view('welcome', compact('tables'));
}

public function getTable(Request $request) {
    $table_id = $request->get('tables');
    $request->session()->put('table_id', $table_id);
}

这在web.php路由中:

Route::get('/', 'ListController@index')->name('get_table');
Route::post('/', 'ListController@getTable');

我什至尝试过

public function getTable(Request $request) {
    $request->session()->put('table_id', '1234');
}

{{ Session::get('table_id') }}的视图中什么都没有显示

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

public function getTable(Request $request) {
    $table_id = $request->get('tables');
    return redirect()->back()->with('table_id',$table_id);
}

如果要重定向到特定路由,则:

public function getTable(Request $request) {
    $table_id = $request->get('tables');
    return redirect()->route('RouteName')->with('table_id',$table_id);
}

然后在视图中:

  @if(Session::has('table_id'))

      {{ Session::get('table_id') }}

  @endif

希望您得到了答案