【问题标题】:Cannot get request object无法获取请求对象
【发布时间】:2019-03-12 01:06:12
【问题描述】:

问候。

我正在尝试从自身调用索引视图,以查找人员并在左侧显示结果。

但是当我调用视图并发送数据时它总是为空,请你给我一个线索。我什至调用了 store 函数,请求总是为空。

应该是模态窗口来获取请求对象吧?如果我想在执行过程中显示窗口,我应该怎么做?

我的路线

    Route::get('registroaccesos/destinationSearchGet/', 'RegistroAccesosController@destinationSearchGet')->name('registroaccesos.destinationSearchGet');
    Route::post('registroaccesos/destinationSearchPost/', 'RegistroAccesosController@destinationSearchPost')->name('registroaccesos.destinationSearchPost');

控制器

public function destinationSearchGet(){
    $headData = array('pageTitle' => 'Admin Home - View all destinations');
return view('registroaccesos.index', $headData);
}


public function destinationSearchPost(Request $request){
    $headData = array('pageTitle' => 'Admin Home - Search results');
    $formData = $request->input('strPatron');

dd($formData);


//    $data = ParentRegionList::destinationSearch($formData);
    return view('registroaccesos.index', $headData);//->with(compact('data'))
}

景色

视图的部分代码

        <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted">
          <span>Acciones</span>
          <a class="d-flex align-items-center text-muted" href="#">
            <span data-feather="plus-circle"></span>
          </a>
        </h6>

              <div class="form-group">
                <label for="strSearch" class="col-form-label">Patrón de búsqueda</label>
                <select name="strSearch" class="form-control">
                  <option value="1"  selected> Código del usuario</option>
                  <option value="2"  > Nombre del usuario</option>
                  </select> 
              </div>

                      <div class="form-group">
                        <input  placeholder="Patrón de búsqueda"
                                id="strPatron"
                                required
                                name="strPatron"
                                spellcheck="false" 
                                class="form-control"
                                value="Valor"
                                />
                      </div>


              <button class="btn btn-sm btn-outline-secondary"

              onclick="
                    event.preventDefault();
                    document.getElementById('search-form').submit();
              "


              >Buscar</button>
                <form id="search-form" action="{{ route('registroaccesos.store','el resultado'  ) }}" method="POST" style="display: none;">
                 <!--   <input type="hidden" name="_method" value="delete">-->
                    {{ csrf_field() }}
                </form>

结果

【问题讨论】:

  • 你能显示你已经命名了哪个请求吗?
  • 您需要将&lt;input&gt; 标签放在&lt;form&gt;&lt;/form 中。现在您正在提交空表单
  • 那么应该是模态的吗?
  • 正如@RaheelKhan 所说,用form 包装每个input
  • 检查this

标签: php laravel laravel-5.5


【解决方案1】:

您的&lt;input&gt; name="strPatron" 不在您的&lt;form&gt; 中,因此在您提交表单时它不会被提交。您需要在表单中包含所有输入元素,否则它们将不会随 POST 请求一起发送。

您现在的方式只有表单中的 CSRF 字段被提交。您可以通过在控制器中执行 dd($request-&gt;all()) 来检查这一点。

【讨论】:

  • 如您所见,我想将结果放在表单之外的右侧。实际上我不是从表单调用相同的函数,而是从页面上的按钮调用......事实上,我并不真正理解其中的区别,因为实际上我是从 javascript 提交调用路由,但是是提交,不是吗?我能做什么??如果我在代码中包含一个表单标签,那么我必须从表单按钮本身调用该函数,然后如何处理表单中的结果...
  • 只需在 HTML 中向上移动您的开场 &lt;form&gt; 标记。也许在您的结束&lt;/h6&gt; 和您的开幕&lt;div class="form-group"&gt; 之间。哦,从你的&lt;form&gt; 标签中删除你的style="display: none;"
  • 非常感谢,我试试
  • 谢谢它的工作。现在我对表格很困惑,你知道一些好的阅读参考吗?
  • w3schools.com/html/html_forms.asp 是初学者概述。基本上,所有输入/选择/等字段都需要在表单标签之间,否则不要与表单一起提交。
猜你喜欢
  • 2015-11-24
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-01
  • 2021-01-13
  • 1970-01-01
相关资源
最近更新 更多