【问题标题】:Laravel 5.4 input empty default valueLaravel 5.4 输入空默认值
【发布时间】:2017-09-06 10:55:27
【问题描述】:

我正在学习 laravel 5.4。我知道有一个新的全局中间件可以将请求输入的空字符串转换为 null。但我有一个问题,网址如:http://localhost/choosePlan?type=1。我在控制器操作中获得类型字段值。如果请求输入中没有类型字段或值为空,我想将默认类型值设置为 1。所以,在我的控制器操作中,我这样写:

$type = $request->input('type',1);

只有我访问http://localhost/choosePlan 才能获取类型默认值。如果我像http://localhost/choosePlan?typehttp://localhost/choosePlan?type= 一样访问,我仍然得到类型为空。所以我认为输入法的默认值只有在请求正文中没有文件名的情况下才能正常工作吗?我该如何解决上述问题?像确定类型为空然后将其设置为默认值1?我无法禁用 ConvertEmptyStringsToNull 中间件,因为它在其他地方使用。谢谢。


更新:我只是测试禁用 ConvertEmptyStringsToNull 中间件,现在我得到类型是空字符串。也许我误解了这种方法,我认为默认值只是针对请求中不存在的指定文件而不是请求中存在的文件名但值为空,对吗?哦,我的上帝,这意味着我在 Laravel 5.2 中也误解了它。

【问题讨论】:

    标签: laravel-5.4


    【解决方案1】:

    如果您想以编程方式添加默认值而不需要禁用 ConvertEmptyStringsToNullyou,您可以执行以下操作:

      $type = $request->input('type') ?: 1; // You can set whatever value you want
    

    【讨论】:

    【解决方案2】:

    您可以将默认值作为第二个参数传递给输入法。如果请求中不存在所请求的输入值,则将返回此值:

    $name = $request->input('name', 'Sally');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 2017-08-28
      • 2017-12-25
      • 1970-01-01
      • 2014-04-19
      • 1970-01-01
      相关资源
      最近更新 更多