【问题标题】:Laravel - Get items from session arrayLaravel - 从会话数组中获取项目
【发布时间】:2018-08-14 00:50:34
【问题描述】:

我正在制作一个步进程序,因此我想使用会话。我有一个表单,允许用户填写一些信息,然后输入值将被放入一个名为“basic_settins”的会话数组中

public function saveSettings(Request $request, Product $products)
{
    $request->session()->push('basic_settings', $request->input());


    return redirect('/themes');
}

但是我如何从该数组中获取特定项目并将其显示在我的视图中?通过在输入字段中使用类似这样的内容:{{ Session::get('store_name') }}

视图如下所示:

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-12">
            <form method="POST" action="{{ route('saveBasicSettings') }}">
                <div class="row">
                    <div class="col-md-12">
                        <button class="btn btn-primary mb-3 float-right">Next</button>
                    </div>
                </div>

                <div class="card z-depth-2" style="border-radius: 7px;">
                    <div class="card-body">
                        <input type="hidden" name="user_id" value="{{ Auth::user()->id }}">
                        {{ csrf_field() }}
                        <div class="form-group">
                            <label for="store_name">Store name</label>
                            <input type="text" class="form-control" placeholder="Store name" id="store_name" name="store_name" value="{{ Session::get('store_name') }}" required>

                        </div>
                        <div class="form-group">
                            <label for="company name">Company name</label>
                            <input type="text" class="form-control" placeholder="Company name" id="company_name" name="company_name" value="{{ Session::get('company_name') }}" required>

                        </div>
                        <div class="form-group">
                            <label for="company_tel">Company phonenumber</label>
                            <input type="text" class="form-control" placeholder="Company Phonenumber" id="company_tel" name="company_tel" value="{{ Session::get('company_tel') }}" required>

                        </div>
                    </div>
                </div>
            </form>
        </div>

    </div>
</div>
@endsection

当我通过这样做 dd 请求时:$data = $request-&gt;session()-&gt;all(); 然后dd($data);

我得到以下结果:

我怎样才能做到这一点?提前致谢!

【问题讨论】:

  • 我猜你必须像这样使用 Session::get('basic_settings.0.company_tel')

标签: php laravel session laravel-5


【解决方案1】:

当您使用push() 时,将创建一个数组,因此您需要执行以下操作:

{{ session('basic_settings.0.company_name') }}

或者:

{{ session('basic_settings')[0]['company_name'] }}

但我建议您使用以下方式保存数据:

{{ session(['basic_settings' => request()->all()]) }}

然后你就可以阅读它了:

{{ session('basic_settings.company_name') }}

【讨论】:

  • 我得到了它的工作谢谢,你还知道我如何检索控制器中的特定项目吗?而不是使用刀片?因为那时我知道一种将值插入到名为 basic_settings 的数据库表中的方法
  • @Rainierlaan $companyName = session('basic_settings.0.company_name');
猜你喜欢
  • 2020-04-19
  • 2015-10-30
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
  • 2017-07-25
  • 2016-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多