Laravel 5.1的存储错误

3

我一直遇到一个很烦人的错误,但由于这不是你完全理解代码就能修复的问题,我一直犹豫是否要在这里发布。但这是一个非常奇怪的错误,让我无法理解。我会尽力解释我正在做什么。我需要进行头脑风暴,也许想出可能出现这种情况的原因。任何帮助都将不胜感激!所以,开始吧。

我有一个每2秒调用一次的javascript函数。该javascript函数发起一个ajax调用,发送一个不断变化的值(例如视频的查找时间),如下所示:

function startCron()
    {
        window.setInterval(function()
        {
                //Get all the variables, etc. etc.
                $.ajax({
                    type: 'GET',
                    url: 'updateDetails',
                    data: 
                    {
                        'seekTime': upSeekTime      
                    },
                    success: function(updates)
                    {
                        alert(updates);
                    }
                });

            }
        }, 2000);
    }

现在这个函数工作得很好!它每2秒被调用一次,发送正确的值,并返回并执行成功函数。
现在,我的“updateDetails”URL调用的函数基本上有一系列的文件操作。它涉及到打开一个文件、存储、打开几个其他文件,最后打开一个最后的文件,存储其中并返回刚才存储的内容。我知道,听起来相当混乱,有些人可能认为这是低效的,但请耐心等待解释。
        //First file get and put process

        $updatedSeekTime = round(Input::get('seekTime'));
        $currentDetails = Storage::get("fileone");
        list($fileID, $fileStatus, $fileSeekTime) = explode(",", $currentDetails, 3);
        $storeMe = array(
                    "user_id" => $user_id,
                    "status" => $fileStatus,
                    "seek_time" => $updatedSeekTime
                    );
        $storeMe = implode(",", $storeMe);
        Storage::disk('local')->put($user_id, $storeMe);



        //Now for the second file retrieving process
        for($i=1;$i<=2;$i++)        //Yes, 1 and 2 are file names.
        {
                $currentDetails = Storage::get($i);
                list($fileID, $fileStatus, $fileSeekTime) = explode(",", $currentDetails, 3);
                $allSeekKebabs[] = $fileSeekTime;
        }

        //Now I find all the minimum value from my array
        $minSeekVal = min($allSeekKebabs);



        //And the final file put process
        $storeMe = array(
                    "user_id" => $user_id,
                    "status" => $fileStatus,
                    "seek_time" => $minSeekVal
                    );
        $storeMe = implode(",", $storeMe);

        //return $storeMe;            //OKAY ATTENTION POINT 1
        Storage::disk('local')->put($user_id, $storeMe);   //PROBLEM POINT
        //return $storeMe;            //OKAY ATTENTION POINT 2

现在,如果你已经看到这里了,那么请接受我的饼干,因为我并没有想到大多数人会读完我的代码。好的,现在,以下是真正奇怪的部分。注意点1给了我所有正确的东西。但是,如果我在存储行之后立即返回相同的变量,就像在注意点2中一样,文件只会将0作为最后一个变量(根据最后一个storeMe数组的seek_time)存储。该数组中的每个其他变量都正确。而且,在storeMe中的seek_time的值在那个可恶的存储行之前是正确的。之后,最后一个变量变成了0。所以,在我看来,存储行正在改变我的变量!听起来很疯狂,对吧?我已经思考了很长时间了。

我已经检查了那个问题点之前的每一行,并且一切都很好。但是那行可恶的代码搞砸了一切,我就是想不通为什么。我的路由文件也没问题!

任何帮助都将非常感激。你可以看到这个问题让我多么沮丧。我只想问一下,我是否遗漏了技术上的某些细节。我知道在这种情况下很难得到直接的答案,但是请告诉我任何想法,无论多么牵强。

非常感谢大家 :D

1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接