Php 在Laravel中使用输入

Php 在Laravel中使用输入,php,laravel,laravel-4,blade,Php,Laravel,Laravel 4,Blade,我试图根据表单字段在提交时是否包含值来设置页面上某些包含的样式。在我的刀片模板中,我有以下代码: @if (Input::has('field')) <li class="option active"> @else <li class="option"> @endif 但是,相同的Input::has('field')调用将在我的控制器上的post方法中返回true。这是否意味着has方法不查看old数组中的数据?如果不是的话,有什么方法可以替代我的方法

我试图根据表单字段在提交时是否包含值来设置页面上某些包含的样式。在我的刀片模板中,我有以下代码:

@if (Input::has('field'))
    <li class="option active">
@else
    <li class="option">
@endif
但是,相同的
Input::has('field')
调用将在我的控制器上的post方法中返回true。这是否意味着
has
方法不查看
old
数组中的数据?如果不是的话,有什么方法可以替代我的方法呢?

只需使用包含数据的Input::old()。Input::has()用于使用post数据的控制器

这应该起作用:

@if (Input::old('field'))
    <li class="option active">
@else
    <li class="option">
@endif
@if(输入::old('field'))
  • @否则
  • @恩迪夫
  • 输入::has()
    没有考虑会话绑定数据(也称为旧输入),因此它在以这种方式检查值时没有用处

    单独使用CSS怎么样?您可以以CSS中的元素属性为目标——在本例中,是
    属性

    /* Target all inputs. */
    input { color: #444; }
    
    /* Target all inputs that have a "value" attribute defined (even if empty) */
    input[value] { color: #bada55; }
    

    请注意,只有当
    属性不是那么完整时,这才起作用。如果已定义但为空,则新颜色仍将优先。因此,这个解决方案可能有效,也可能无效,完全取决于HTML的生成方式。耐人寻味。

    Input类与表单中提交的用户输入相关。所以,它不会像你期望的那样起作用。我修改了我的问题。提交表单后,页面将重新加载并包含用户在
    Input::old()中提交的数据
    
    /* Target all inputs. */
    input { color: #444; }
    
    /* Target all inputs that have a "value" attribute defined (even if empty) */
    input[value] { color: #bada55; }