【问题标题】:Getting a value from a text box in laravel 5.8从 laravel 5.8 中的文本框中获取值
【发布时间】:2019-10-08 06:42:59
【问题描述】:

我无法将文本框的值从表单中获取到变量

我已经尝试了几乎所有可能的方法来解决这个问题,但没有任何效果

search.blade.php

@extends('layouts.app')
    @section('content')

    <form action="/student/searchshow" method="POST" role="search">
    {{ csrf_field() }}
        <div class="input-group">
        <input class="form-control" type="text" name="name" placeholder="Search" aria-label="Search"> 

                <a href="{{url('student/search/')}}" class="btn btn-default">search</a>  

        </div>   
     </form>
    @stop

StudentController.php

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\student;//to access the views in student
use Illuminate\Support\Facades\Input;

class StudentController extends Controller
{
  public function searchshow()
  {
    return view('student.search');
   }

 public function search()
    {
      $name = Input::get('name');

       dd($name);
    }   
}

web.php

<?php
Route::get('/', function () {
    return view('welcome');
});

Route::get('student/searchshow', 'StudentController@searchshow');

Route::post('student/search', 'StudentController@search');

当我尝试从表单(search.blade.php)中获取变量的值时,它总是给出结果为空

【问题讨论】:

  • 你为什么在表单中使用这个&lt;a href="{{url('student/search/')}}" class="btn btn-default"&gt;search&lt;/a&gt;

标签: php search save laravel-5.8


【解决方案1】:

在Route中,URL是

Route::post('student/search', 'StudentController@search');

但形式上

<form action="/student/searchshow" method="POST" role="search">

你应该改变

<form action="/student/search" method="POST" role="search">
    {{ csrf_field() }}
    <div class="input-group">
         <input class="form-control" type="text" name="name" placeholder="Search" aria-label="Search"> 
         <button type="submit" class="btn btn-default">search</button>  
    </div>   
</form>

【讨论】:

  • 是的,感谢您的回复。但是还有另一个问题,当单击搜索按钮(在表单内部)时,如何将数据从表单获取到控制器中的变量
  • @dasundevinda 当单击搜索按钮时,表单的所有数据都应发送到控制器,因为它是提交按钮。 public function search(Request $request) => 可以通过代码获取所有数据:$data = $request-&gt;all();
【解决方案2】:

首先,您将 POST 请求发送到仅接受 get 的操作 您应该将表单操作更改为“学生/搜索”

然后您可以获得发布数据,如下例所示

....
public function search(Request $request)
    {
        $name = $request->input('name');
    ....

这里是文档链接 https://laravel.com/docs/5.8/requests

【讨论】:

  • 是的,感谢您的回复。但是还有另一个问题,当单击搜索按钮(在表单内部)时,如何将数据从表单获取到控制器中的变量
猜你喜欢
  • 1970-01-01
  • 2019-09-18
  • 2019-10-12
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 2016-03-19
相关资源
最近更新 更多