我的搜索表单如下,只有一个字段
{!! 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}}">
问题
有没有更好的方法在上面的搜索表单中填写表单输入值?
答案 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}}">
希望这有帮助。