Laravel Form::select 不绑定生产中的模型,但本地
Laravel Form::select not binding on model in production, but local
我是 运行 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() !!}
由于代码在生产环境和本地环境中是相同的,我不知道它如何产生不同的结果,但我很乐意听到任何关于如何修复它的建议。
提前致谢!
我使用 0 和 1 代替 'J' 和 'N' 解决了这个问题。我假设,不同的数据库类型(mysql 本地和 heroku 上的 postgresql)正在处理不同的字符,第二个不如第一个。使用整数代替解决了我的问题。
我是 运行 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() !!}
由于代码在生产环境和本地环境中是相同的,我不知道它如何产生不同的结果,但我很乐意听到任何关于如何修复它的建议。 提前致谢!
我使用 0 和 1 代替 'J' 和 'N' 解决了这个问题。我假设,不同的数据库类型(mysql 本地和 heroku 上的 postgresql)正在处理不同的字符,第二个不如第一个。使用整数代替解决了我的问题。