【问题标题】:Laravel Form::select not binding on model in production, but localLaravel Form::select 在生产中不绑定模型,但在本地
【发布时间】:2018-11-07 07:22:16
【问题描述】:

我在 heroku 上运行一个 Laravel 应用程序并构建了一个多步骤表单,它会在每一步更新对象。我还使用了帮助我创建表单的 HTML 库,请参见下面的代码。现在我意识到,当我稍后打开表单时,选择的模型绑定不起作用。相反,选项数组的第一个选项默认显示。 但是,这只发生在生产环境(heroku)上,而不是我的本地 xampp 服务器上。此外,模型绑定在生产中对数字或字符串起作用,只有选择不能正确绑定。 我还测试过,该对象具有正确的值,因此它不是数据库保存错误,并且一切正常。

在下面查看我的代码:

// Form is opened here
{!! Form::model($umzug, ['method'=>'PUT', 'action' => array('UmzugController@update', $umzug->id)]) !!}
...
<div class="col-sm-6">
  {!! Form::label('halteverbot_auszug', 'Halteverbot') !!}
  // Following line prints 'N', as it was selected previously and was therefore saved correctly in the DB
  {{ $umzug->halteverbot_auszug }}
  // Following line should produce a select input with 'Nein' selected, but shown 'Ja' instead 
  {!! Form::select('halteverbot_auszug', ['J' => 'Ja', 'N' => 'Nein'], null, ['class'=>'form-control', 'id'=>'halteverbot_auszug'])  !!}
</div>
...
{!! Form::close() !!}

由于生产和本地的代码是相同的,我不知道它如何产生不同的结果,但我很高兴听到有关如何修复它的任何建议。 提前致谢!

【问题讨论】:

  • 您是否已将 laravel 集合添加到您的生产服务器?可能你应该在生产中检查你的 composer.json 文件并在你的生产中更新作曲家。
  • 很遗憾,这个解决方案没有解决我的问题。
  • 你尝试了什么,得到了什么,有什么错误信息吗?
  • 我运行了heroku run composer update,一切都成功更新到了最新版本(和本地生产一样),但是这一步并没有解决原来的问题。如果您告诉我您需要什么,我可以提供更多信息。
  • 你检查过你的 composer.json 文件吗?

标签: php laravel heroku laravelcollective


【解决方案1】:

我能够通过使用 0 和 1 而不是“J”和“N”来解决这个问题。我假设,不同的数据库类型(本地 mysql 和 heroku 上的 postgresql)处理的字符不同,第二个不如第一个。改用整数解决了我的问题。

【讨论】:

    猜你喜欢
    • 2013-07-13
    • 2021-06-08
    • 2021-10-12
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多