如果isset laravel 5,则将PHP变量从GET传递到当前表单
好的,我已经搜索了过去几天,没有找到一个有意义的答案。我肯定这是可行的,但不确定我是否在我的头上。我不熟悉Laravel5,也不熟悉PHP。我试图将一个输入的字符串从我(laravel collective)表单的GET['quote']部分发送到同一个表单,该表单使用GET变量在其下方的新视图进行更新。基本上是在刷新后在搜索框中保留某人键入的内容 通常,如果需要的变量是“set”,我会回显它,如果它不在文本框的“value”=“”部分,则将其保留为空。在使用此表单的Laravel中,如果我理解正确,由于在父视图中呈现子视图(首先是父视图,然后是子视图),我无法做到这一点。附近有工作吗?如果找不到解决方案,我准备在表单中执行旧的echo 提前谢谢!在过去的几个月里,这个网站帮了我很多问题 父视图上的当前窗体如果isset laravel 5,则将PHP变量从GET传递到当前表单,php,forms,laravel,laravel-5.1,laravelcollective,Php,Forms,Laravel,Laravel 5.1,Laravelcollective,好的,我已经搜索了过去几天,没有找到一个有意义的答案。我肯定这是可行的,但不确定我是否在我的头上。我不熟悉Laravel5,也不熟悉PHP。我试图将一个输入的字符串从我(laravel collective)表单的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() }}
下面的代码来自我的控制器
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太多之前,先阅读一下这部分文档。响应和请求是后端所有事情的核心: 控制器
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
是否有任何值。如果没有,它将返回一个空字符串,因为输入
字段的第二个参数设置为'
。然后它将在数据库中搜索给定的关键字
控制器:
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>
刀片:
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>
{!!Form::open(数组('url'=>'search','method'=>'get'))
{!!Form::text('query',''[
“类”=>“表格”,
“占位符”=>“搜索关键字”,
]) !!}
{!!表单::提交('submit')
{!!Form::close()!!}
//要查看数据,请在搜索表单中添加下表
可乐
可乐
可乐
@foreach($d数据)
{{$d->column_one}
{{$d->column_two}
{{$d->column_three}
@endforeach
您不需要值值({{
&}
)中的刀片令牌。如果它确实在GET
中,您应该将请求
对象传递给控制器,并以这种方式访问它。我快速搜索了它,并将继续寻找一些澄清,因为它开始有意义了,但我还不完全在那里。如果对象是空的(第一次登录到该页面)该怎么办。我认为要理解响应和请求,最重要的是要有一个关于如何实现它们的真实应用程序。这两页我今天和昨天都读了好几遍,但都没法理解。你的修改有助于理解它。今天晚些时候我会再做这件事,然后再告诉你一切进展如何。非常感谢,不用担心。如果这确实是您问题的解决方案,请记住标记为“正确”。它不仅对你有帮助,而且对未来的stackoverflow用户也有帮助。出于某种原因,我遇到了和我在请求中遇到的相同的错误。它说明:request变量未定义。好的,我丢失了使用\Http\Request;'在我的页面控制器中。不过,我仍然没有将旧值发布到我的表单中。我不知道为什么。。。可能与Laravel集体未识别变量有关。我可以在下一个视图上方的表单下重复它,但我的源中仍然有一个空值=“”。。。。奇怪。似乎集体文本方法的第二个参数应该是默认值,我已经更新了答案,以反映我欣赏响应,但这只是一个将简单变量传递给另一个视图的简单形式。如果我试图访问一个数据库,然后根据一个查询循环出内容,那么您的回答是正确的。虽然文本输入的名称是query,但它实际上不是一个查询。