从视图向控制器发送值

时间:2019-01-10 07:18:16

标签: php html laravel

我有一个下拉列表来显示某些建筑物的值:我不确定如何将值发送到新页面以仅显示该选定建筑物的值。尝试使用下拉菜单加载页面时出现错误。我不确定自己在做什么错。

这是我的index.blade:

<form action="{{ route('custom'),$datacenter }}">
<div class="form-group" id="dropdown">
    <label>Data Center:</label>
    <select name="datacenter" id="datacenter" class="form-group">
      <option value="RDC46">RDC46</option>
      <option value="RDC03">RDC03</option>
      <option value="RDC05">RDC05</option>
      <option value="DDC21">DDC21</option>
    </select>
    <button type="submit" class="btn btn-info">Submit</button>
</div>

这是我的网络路线:

Route::get('custom\{datacenter}', 'AssigneeController@custom')->name('custom');

这是我的控制器:

public function custom($datacenter)
 {
     $assignees = assignee::findorfail('datacenter')->paginate(10);

     return view('custom',compact('assignees'))
         ->with('i', (request()->input('page', 1) - 1) * 5);
 }

我遇到以下错误:

  

缺少[Route:custom] [URI:所需的参数:   自定义{数据中心}]。 (视图:   /Users/Documents/Laravel/blog/resources/views/assignees/index.blade.php)

3 个答案:

答案 0 :(得分:1)

您应该尝试以下操作:

<form action="{{ route('custom',[$datacenter]) }}">
    <div class="form-group" id="dropdown">
        <label>Data Center:</label>
        <select name="datacenter" id="datacenter" class="form-group">
          <option value="RDC46">RDC46</option>
          <option value="RDC03">RDC03</option>
          <option value="RDC05">RDC05</option>
          <option value="DDC21">DDC21</option>
          </select>
          <button type="submit" class="btn btn-info">Submit</button>

    </div>
  </form>

答案 1 :(得分:0)

尝试此代码,

<form action="{{ route('custom', $datacenter)}}">
    <div class="form-group" id="dropdown">
        <label>Data Center:</label>
        <select name="datacenter" id="datacenter" class="form-group">
          <option value="RDC46">RDC46</option>
          <option value="RDC03">RDC03</option>
          <option value="RDC05">RDC05</option>
          <option value="DDC21">DDC21</option>
          </select>
          <button type="submit" class="btn btn-info">Submit</button>

    </div>
  </form>

答案 2 :(得分:0)

对我来说,这就像一个简单的GET请求。

将表单更改为以下内容:

<form action="{{ route('custom') }}">
    <div class="form-group" id="dropdown">
        <label>Data Center:</label>
        <select name="datacenter" id="datacenter" class="form-group">
            <option value="RDC46">RDC46</option>
            <option value="RDC03">RDC03</option>
            <option value="RDC05">RDC05</option>
            <option value="DDC21">DDC21</option>
        </select>
        <button type="submit" class="btn btn-info">Submit</button>
    </div>
</form>

在您的控制器中:

public function custom(Request $request)
{
    // You will have access to the datacenter using $request->datacenter
    $assignees = assignee::findorfail($request->datacenter)->paginate(10);

    return view('custom',compact('assignees'))
        ->with('i', (request()->input('page', 1) - 1) * 5);
}

您的路线中无需数据中心网段:

Route::get('custom', 'AssigneeController@custom')->name('custom');