【问题标题】:session becomes empty when accessed in another function在另一个函数中访问时会话变为空
【发布时间】:2017-03-16 18:56:01
【问题描述】:

我正在使用 laravel 框架 5.2。我正在为多个图像使用 dropzone。所有图像都成功存储在会话中。现在的问题是,当我在另一个函数中访问该特定会话时,它给了我空白结果,这是我的 balde 文件和函数

enter code here
<---Dropzone-->
<div class="modal-body">
             <div class="dropzone-img">
                 <form id="my-awesome-dropzone" action="{{ url('/add-images')}}" class="fallback dropzone">
                             {{ csrf_field() }}

           </div>
        </div>

现在我的控制器有两个功能

enter code here
public function add_images(Request $request){
    if($request->ajax()){
        $image=$_FILES['file'];
        if(!empty($image)){
            if($image['error']==0){
                $imgName = pathinfo($_FILES['file']['name']);
                $ext = $imgName['extension'];
                $rand=mt_rand(5,1000000000).'.'.$ext;
                $destination=realpath('../public/images/ListingImages').'/';
                if(move_uploaded_file($image['tmp_name'], $destination.$rand)){
                    $request->session()->put('businessimages.'.$imgName['filename'].'.image',$rand);
                    $images = $request->session()->get('businessimages');
                    echo "<pre>"; print_r($images); die;  
                }
            }
        }
    }
}

Now when i accessed the businessimages session in another function it gives me empty result.

 public function business_for_sale(Request $request){
     $images = $request->session()->get('businessimages');
     echo "<pre>"; print_r($images); die;
 }

谁能帮帮我。在此先感谢:)

【问题讨论】:

    标签: php session laravel-5.2 dropzone.js


    【解决方案1】:

    我认为问题在于您在设置会话时调用 die() 函数

    $request->session()->put('businessimages.'.$imgName['filename'].'.image',$rand);
    $images = $request->session()->get('businessimages');
    echo "<pre>"; print_r($images); die;
    

    你可以看到它 Does die() end your session in PHP?

    所以你可以试着改变它

    $request->session()->put('businessimages',$rand);
    $images = $request->session()->get('businessimages');
    echo "<pre>"; print_r($images); 
    session_register_shutdown();
    die;
    

    【讨论】:

    • 谢谢你 Xposl 的作用就像魅力 :) 你还有一个错误,你在你的答案中删除了 die
    • 因为你这里的key不一样。您应该将其设置为使用键名 businessimages $request-&gt;session()-&gt;put('businessimages',$rand); 并使用相同的键名 $request-&gt;session()-&gt;get('businessimages');
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多