如果isset laravel 5,则将PHP变量从GET传递到当前表单

如果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中,如果我理解

好的,我已经搜索了过去几天,没有找到一个有意义的答案。我肯定这是可行的,但不确定我是否在我的头上。我不熟悉Laravel5,也不熟悉PHP。我试图将一个输入的字符串从我(laravel collective)表单的GET['quote']部分发送到同一个表单,该表单使用GET变量在其下方的新视图进行更新。基本上是在刷新后在搜索框中保留某人键入的内容

通常,如果需要的变量是“set”,我会回显它,如果它不在文本框的“value”=“”部分,则将其保留为空。在使用此表单的Laravel中,如果我理解正确,由于在父视图中呈现子视图(首先是父视图,然后是子视图),我无法做到这一点。附近有工作吗?如果找不到解决方案,我准备在表单中执行旧的echo

提前谢谢!在过去的几个月里,这个网站帮了我很多问题

父视图上的当前窗体

{{ 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,但它实际上不是一个查询。