在 Laravel 中获取请求值

Posted

技术标签:

【中文标题】在 Laravel 中获取请求值【英文标题】:get the request values in Laravel 【发布时间】:2018-04-15 03:44:51 【问题描述】:

我希望通过日期选择器和选择字段进行搜索查询。 如何从下面的视图文件中获取请求值到控制器? 我可以在哪里修改代码?谢谢。

index.blade.php

<div class="form-group col-sm-6">
    !! Form::open(array('class' => 'form', 'method' => 'get', 'url' => url('/pdfs/job_finished_search'))) !! 
       !! Form::input('text', 'datepicker_from', null, ['placeholder' => 'Fra', 'id' => 'datepicker_from']) !!
       !! Form::input('text', 'datepicker_to', null, ['placeholder' => 'Til', 'id' => 'datepicker_to']) !! 
       !! Form::select('customer_name', $jobs->pluck('customer_name', 'customer_name')->all(), null, ['class' => 'form-control']) !!
       !! Form::submit('Søke', ['class' => 'btn btn-success btn-sm']) !! 
    !! Form::close() !!
</div>

Controller.php

public function job_finished_search(Request $request, Job $jobs)


    $jobs = Job::onlyTrashed()
            ->whereBetween('created_at', array(
              (Carbon::parse($request->input('datepicker_from'))->startOfDay()),
              (Carbon::parse($request->input('datepicker_to'))->endOfDay())))
            ->where('customer_name', 'like', '%'.$request->customer_name.'%')
            ->orderBy('deleted_at', 'desc')
            ->paginate(15);

       if (empty($jobs))
           Flash::error('Search result not found');
    

    return view('pdfs.index', ['jobs' => $jobs]); 

【问题讨论】:

您能否编辑您的帖子以显示在您的控制器中返回 dd($request-&gt;all()); 的内容? @Asur, hi dd 结果是,array:3 [▼ "datepicker_from" => "10/01/2017" "datepicker_to" => "10/31/2017" "customer_name" => “asdfasdf”] @Asur,我认为核心是如何调整2个参数以返回视图。 【参考方案1】:

有多种方法可以获取请求数据,例如获取 datepicker_from 值,您可以使用以下任何一种方法

$request->datepicker_from 
$request->input('datepicker_from')
$request->get('datepicker_from')

选择你最喜欢的一个

参考https://laravel.com/docs/5.5/requests

【讨论】:

【参考方案2】:

要获取请求值,您可以使用get 方法,尝试:

$customer = $request-&gt;get('customer_name','default_value');

【讨论】:

【参考方案3】:

要获取请求值,您可以设置像$input= $request-&gt;all() 这样的对象。然后你可以使用数组对象来获取特定字段,例如访问你的日期选择器,你可以写$input['datepicker_from']。在代码中声明$jobs 对象之前,您需要放置$input= $request-&gt;all()

【讨论】:

$input= $request-&gt;all() 返回一个数组,而不是一个对象。解释的方法很适合人们了解,但您最好将措辞修正为准确。

以上是关于在 Laravel 中获取请求值的主要内容,如果未能解决你的问题,请参考以下文章

laravel 8 没有从 ajax 请求中获取数据

在 Laravel 控制器中请求输入 null

Laravel 获取请求头

在Laravel中通过AngularJs上传文件时获取值为null

Laravel 的参数获取

laravel ORM 模型在所有请求中显示相同的值