【问题标题】:Laravel request->input('') or old('') always return 1 in bladeLaravel request->input('') 或 old('') 在刀片中总是返回 1
【发布时间】:2016-12-20 12:34:54
【问题描述】:

我想将 url 数据放入我的输入值中。

例子:

  • 网址是http://example.com/user?username=example
  • 我的html输入代码如下
  • <input value="{{ request()->input('username') or old('username') }}">
  • 但结果总是返回“1”而不是“示例”

似乎“或”刀片助手充当条件运算符。

如何将用户名值从 url 获取到该输入中,并且仍将默认值设为 old('username')?

【问题讨论】:

  • 我的问题怎么不跟怎么问?我试过的是在标题上?
  • or 确实是一个条件运算符。它适用于@if(request()->input('username') or old('username')) 等情况,但不适用于{{ request()->input('username') or old('username') }}
  • 语句是(A 或 B),因此它的计算结果为 true(1) 或 false(0) ...它无法计算为“示例”

标签: php laravel laravel-blade


【解决方案1】:

根据official documentation 8.x

我们使用助手request

请求函数返回当前请求实例或获取 当前请求中输入字段的值:

$request = request();

$value = request('key', $default);

请求的值是一个数组,您可以使用输入键简单地检索您的输入,如下所示

$username = request()->username; //for http://example.com/user?username=example

【讨论】:

    【解决方案2】:

    非常简单的方法。

    <input value="{{ request()->input('username') ?? old('username') }}">
    

    【讨论】:

      【解决方案3】:

      这样更简单:

      <input value="{{ (old('username')?old('username'):'') }}">
      

      【讨论】:

        【解决方案4】:

        试试

        <input value="{{ request()->input('username', old('username')) }}">
        

        如果用户名存在或默认为旧值,它将检索用户名作为输入。你也可以给旧的助手一个默认值。

        【讨论】:

        • 这项工作,但是当我修改输入的值并点击注册按钮时,我刚刚输入的值不会保留。相反,当我单击注册按钮时,网址中的值总是出现。
        • @DaraDev 将 method="POST" 添加到您的表单元素。默认的 GET 方法确实会为您的 URL 添加参数。
        猜你喜欢
        • 2022-01-27
        • 2016-09-11
        • 1970-01-01
        • 1970-01-01
        • 2021-05-04
        • 1970-01-01
        • 1970-01-01
        • 2021-12-17
        • 2018-06-07
        相关资源
        最近更新 更多