刷新或关闭浏览器后数据消失 - Laravel

Posted

技术标签:

【中文标题】刷新或关闭浏览器后数据消失 - Laravel【英文标题】:Data is gone after refresh or closing browser - Laravel 【发布时间】:2019-06-02 17:33:31 【问题描述】:

在我多次编辑和刷新页面或关闭并打开浏览器后数据消失后,数据变为空。

我在控制器中使用 db

use DB;

这是我的观点

    !! Form::open(['action' => ['Admin\SettingsController@index'], 'method' => 'POST']) !!

            <select name="aircraft_id" class="form-control" id="">
              <option value="0" disabled="true" selected="true"> Select </option>
              @foreach ($aircrafts as $aircraft)
                  <option name="aircraft_id" value=" $aircraft->aircraft_id "> $aircraft->aircraft_registration_number </option>
              @endforeach
            </select>

            <br>

            Form::hidden('_method', 'PUT')
            Form::submit('BIND', ['class'=>'btn btn-primary btn-block btn-lg', 'name'=>'submit'])

                  !! Form::close() !!

我的控制器

 $airid = $request->input('aircraft_id');   <------ used to call textbox

     $aircraft = DB::table('series')   <----------update my data
      ->update(['aircraft_id' => $airid]);

所以在运行和更新所有这些代码之后,我可以设法更新我的数据,但正如我在刷新、关闭和重新打开或任何可能关闭或刷新浏览器的事情之后所说的那样,数据是 NULL nad Removed

我只想让数据永久化

【问题讨论】:

做了什么数据? @AbdurRahman 先生是什么意思? 你确定数据存储成功了吗? Becoz 浏览器刷新/重新加载不会更改数据库上的任何内容,除非您为此编写代码。 @BanujanBalendrakumar 是的,我确定它已存储,我检查了它。我的代码都存储在索引 index.blade.php 是我更新我的内容并显示它的地方 @BanujanBalendrakumar 我拥有Confirm Form Resubmission - The page that you're looking for used information that you entered. Returning to that page might cause any action you took to be repeated. Do you want to continue? 【参考方案1】:
 $airid = $request->input('aircraft_id');   <------ used to call textbox

 $aircraft = DB::table('series')   <----------update my data
  ->update(['aircraft_id' => $airid]);

=> 似乎您正在尝试将所有 'aircraft_id' 更新为 $airid 中传递的值。当列定义是 Primary_Key 或者它被定义为唯一时,这可能是错误的。所以你需要做的就是:

DB::table('series')
        ->where('aircraft_id', $airid)
        ->update(<column_name> => <value>]);

这是您要更新值的列名。 是您想要设置为您输入的所需列的值。

【讨论】:

好吧,先生,你说得对,我需要更新aircraft_id中的所有列 -&gt;update(aircraft_id =&gt; $airid]);,先生,我需要更新查询是这样的,以便我可以更新所有列,但是当我这样做时它不会更新:( $airid 是具有价值的选择下拉菜单,所以我需要在我的更新查询中使用它 但是当我把 3 放在它上面时它正在更新,但是当我把 $airid 它没有更新时 我相信这回复太晚了,但我认为如果你在 $request->input('aircraft_id'); 中获得价值,你需要先调试一下。在将其分配给 $airid 之前。【参考方案2】:

我不知道 Laravel,但查看它关于数据库更新的文档,看起来您需要在 update 之前使用 where 语句。在某些数据库中,当您忘记where 时,表中的所有条目都会更新为传递的值。

此外,在 html 中,只有 select 元素具有 name 属性。 option 元素不应有 name

【讨论】:

你能给我一个答案吗?我认为你可能是对的,先生,好点子 我的意思是where子句的语法?

以上是关于刷新或关闭浏览器后数据消失 - Laravel的主要内容,如果未能解决你的问题,请参考以下文章

会话销毁或关闭浏览器选项卡或关闭浏览器后,使用Laravel 5.2执行注销

Vuex 刷新页面后数据就消失了,怎么保存数据持久化?

使用 Laravel php 刀片后,如何让数据显示在浏览器中? [关闭]

页面刷新vuex数据消失问题解决方案

页面刷新vuex数据消失问题解决方案

使用onbeforeunload事件检测窗口是否刷新或关闭 .