有没有更好的方法来填写上述搜索表单中的表单输入值?

时间:2016-01-15 20:58:05

标签: php laravel laravel-5.1 laravel-5.2

我的搜索表单如下,只有一个字段

{!! Form::open(array('method' => 'POST', 
        'action' => 'CustomerController@SearchCustomers', 
        'class' => "form-horizontal form-label-left")) !!}
    {!! csrf_field() !!}
        <input type="text" class="form-control" name="Customer">
        <button type="submit">Search</button>
{!! Form::close() !!}

以下是Controller

中的代码
$AllCustomers = \App\Models\Customer_Model
    ::where('Customer', 'LIKE', '%'.$Customer.'%')
    ->get();
return View('Customer.List', array('AllCustomers' => $AllCustomers));

我在尝试什么?

当提交表单进行搜索时,在视图中,我应该能够在文本框中再次查看该关键字。为此,我在下面做。

return View('Customer.List', array('AllCustomers' => $AllCustomers, 'Key' => $Customer));

现在在表格中,我在下面做。

<input type="text" class="form-control" name="Customer" value="{{$Key}}">

问题

有没有更好的方法在上面的搜索表单中填写表单输入值?

2 个答案:

答案 0 :(得分:0)

我认为这可能是你正在寻找的机器人:

use Illuminate\Http\Request;

class MyController extends Controller
{
    /**
     * My action.
     *
     * @param  Request  $request
     * @return View
     */
    public function index(Request $request)
    {
        ...
        return View('Customer.List', array_merge(
            ['AllCustomers' => $AllCustomers],
            $request->only(['Customer'])
        ));
    }

action方法中的use行和type-hinted参数执行Request对象的依赖注入。

$request->only(['Customer'])合并到您的视图参数中为您提供所需的&#34;输入&#34;功能。

Laravel doc: https://laravel.com/docs/master/requests

答案 1 :(得分:0)

我认为正确的方法是使用输入内联检查$request->input('key', null)检查请求中是否存在密钥,如果是,则返回null,否则返回密钥,检查下面的代码。

控制器:

public function index(Request $request)
{
    $key = $request->input('key', null);

    $allCustomers = \App\Models\Customer_Model
        ::where('Customer', 'LIKE', '%'.$Customer.'%')->get();

    return View('Customer.List', compact('allCustomers', 'key'));
}

查看:

<input type="text" class="form-control" name="Customer" value="{{is_null($key)?'':$key}}">

希望这有帮助。