好吧,我搜索了过去几天,一直找不到有意义的答案。我肯定这是可行的,但不确定我是否有点不知所措。我是Laravel 5的新手,也是PHP的新手。我正试图将输入的字符串从我(laravel集体)表单的GET[‘quote’]部分发送到下面用新视图更新的相同表单,该视图使用GET变量。基本上是在刷新后将某人键入的内容保留在搜索框中。
通常情况下,如果需要的变量是"set",我只会回显它,如果它不在文本框的"value"="部分,则将其留空。在这种形式的Laravel中,如果我理解正确的话,由于在父视图中呈现子视图(先父视图,然后子视图),我无法做到这一点。周围有工作吗?如果找不到解决方案,我准备在表单中执行旧的回声。
提前感谢!在过去的几个月里,这个网站帮助我解决了很多问题。
父视图上的当前窗体。
{{ Form::open(array('url' => 'search', 'method' => 'get')) }}
{!! Form::text('query', '', [
'class' => "form-table",
'placeholder' => "Search Keywords",
'value' => "{{ $query }}"
]) !!}</td>
{!! Form::submit('Submit') !!}
{{ Form::close() }}
表单下面的代码是将文本框字符串传递到另一个视图,并在表单下面显示它。我不知道任何JS,所以我在这里有点摸索,可能是想让一些不起作用的东西起作用。
@yield('child')
下面的代码来自我的控制器。
public function getSearch(){
$title = "Page Title";
$query = "some string"; //This was set to $_GET['query'] but was failing.
return view('pages.search')->with("title", $title)->with("query", $query);
工作代码:对于遇到此问题的任何人
表单代码:value = ""
在我的原始表单上也放错了位置,所以我把$query
放在下面的正确表单数组中。
{{ Form::open(array('url' => 'search', 'method' => 'get')) }}
{{ Form::text('query', $query, [
'class' => "form-table",
'placeholder' => "Search Keywords",
])
}}
{{ Form::submit('Submit') }}
{{ Form::close() }}
页面控制器。添加到命名空间下方的控制器顶部。
use Illuminate'Http'Request;
控制器:
public function getSearch(Request $request){
$title = "Search";
$query = $request->input("query", "");
return view('pages.search', ["title" => $title, "query" => $query]);
}
您很接近,但缺少几个关键部分。首先,您需要将请求传递给控制器以访问请求。
我强烈建议你在过多地陷入Laravel之前阅读这部分文档。响应和请求是所有后端事物的核心:
https://laravel.com/docs/5.1/requestshttps://laravel.com/docs/5.1/responses
控制器
use Illuminate'Http'Request;
public function getSearch(Request $request)
{
$title = "Page Title";
$query = $request->input("query", ""); // get the 'query' string, or default to an empty string
return view('pages.search', [
'title' => $title,
'query' => $query,
]);
}
查看
{!! Form::open(['url' => 'search', 'method' => 'get']); !!}
{!! Form::text('query', $query, [
'class' => "form-table",
'placeholder' => "Search Keywords"
]);
!!}
{!! Form::submit('Submit'); !!}
{!! Form::close(); !!}
首先检查query
是否有任何值。否则,它将返回一个空字符串,因为input
字段的第二个参数设置为''
。然后它将在数据库中搜索给定的关键字。
控制器:
public function getSearch(Request $request)
{
$title = "Page Title";
if(Input::has('query')){
$query = Input::get('query');
}
$data = DB::table('table_name')->where('column_name','like','%'.$query.'%');
// or if you use model you can use this
$data = ModalName::all()->where('column_name','like','%'.$query.'%');
return view('pages.search', compact('title','data'));
}
刀片:
{!! Form::open(array('url' => 'search', 'method' => 'get')) !!}
{!! Form::text('query', '', [
'class' => "form-table",
'placeholder' => "Search Keywords",
]) !!}
{!! Form::submit('Submit') !!}
{!! Form::close() !!}
// To view data add the table below search form
<table>
<tr>
<th>col1</th>
<th>col2</th>
<th>col3</th>
</tr>
@foreach($data as $d)
<tr>
<td>{{ $d->column_one }}</td>
<td>{{ $d->column_two }}</td>
<td>{{ $d->column_three }}</td>
</tr>
@endforeach
</table>