gpt4 book ai didi

php - 为什么我的变量在 Laravel 5.4 Blade 文件中显示不正确的值?

转载 作者:可可西里 更新时间:2023-11-01 00:28:58 24 4
gpt4 key购买 nike

我有一个变量 $country_code,它在我的表单的一部分显示正确的值,但在另一部分不显示。为什么会这样?

这是我的代码:

{{ Form::open(['action' => ['PinVerificationController@valid'],'id'=>'pin_code_form']) }}
//$country_code shows 1
We sent a text message to {{$country_code}} {{$phone_number}}. You should receive it within a few seconds.<br><br>
{{ Form::label('Pin Code', null, ['class' => 'control-label']) }}
{{ Form::hidden('country_code', $country_code) }}//<------shows 1-US instead of 1
{{ Form::hidden('phone_number', $phone_number) }}
{{ Form::hidden('type', $pin_notification_type) }}
{{ Form::text('pin_code', null,['placeholder' => 'Pin Code'])}}<br><br>
Enter a 4 digit pin you received by phone.
<br>
<br>
{{ Form::submit('Verify',['name'=>'validate'])}}

{{ Form::close() }}

因此,如果我在我的 Controller 中将 $country_code 设置为“1”,它将显示We sent a text message to 1 5555555。您应该会在几秒钟内收到它。但是,如果我在我的隐藏表单上执行检查元素,它会显示 1-US。我已经尝试了 php artisan view:clearphp artisan clear-compiled 但问题仍然存在。

我也尝试过硬编码一个值 {{ Form::hidden('country_code', 'asdf') }} 但我没有看到变化。我尝试添加测试 {{ Form::hidden('country_code1', 'asdf') }} 并查看更新。

我还将隐藏字段的 country_code 重命名为 country_code111 并且它显示了正确的值 1。我认为这是一个缓存问题,但就像我提到的那样我已经尝试了 php artisan cache:clear 问题仍然存在。

最佳答案

由于您使用的是 Laravel 5.4,我假设您使用的是 LaravelCollective 中的 Form,因为它们已从 5.x 中的基线 Laravel 中删除。

LaravelCollective Forms 将覆盖您提供给输入的值,如果它存在于请求数据或旧发布数据(old() 函数)中。我怀疑你就是这种情况。

你可以看到这个行为实现here .

要解决这个问题,您有几种选择:

  1. 更改输入页面的请求参数的名称(如果您可以控制它)
  2. 将您的字段名称重命名为不冲突的名称
  3. 不要使用 Form:: 生成表单,只需使用经典的 html/Blade 自动创建隐藏输入

就我个人而言,我会推荐#3,因为这样您就可以完全控制您的代码。

<input type="hidden" name="country_code" value="{{ $country_code }}"/>

关于php - 为什么我的变量在 Laravel 5.4 Blade 文件中显示不正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48289947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com