首页 > 解决方案 > Laravel $request 值为空

问题描述

我想在您选择公司的地方创建下拉菜单,它会向您显示该公司的所有者,但是当我从控制器中的 Blade.php 请求数据时,我得到 NULL。这是我的blade.php

<form>
        <label>Company:</label>
        <select id="test" name="test" class="form-control input-sm"> 
            @foreach($companies as $company)
                <option value="{{$company->id}}">{{$company->name}}</option>
            @endforeach
        </select>
    </form>

这是我的控制器

public function index(Request $request)
    {       
        $companies = Company::all();
        $company_id = $request->get('company'); 
        $owners = Owner::where('company_id',$company_id)->get();  
    return view ('owners', compact('owners','companies'));
    }

它没有显示任何用户但是如果我像这样手动输入任何数字

$company_id = 1; 

然后它显示 ID 为 1 的公司的所有者。

更新 2

我的表格现在看起来像这样

<form action="{{ action('OwnerController@index') method="get"}}">

我的路线是这样的

Route::get('owners', 'OwnerController@index');

它还是一样的。

标签: laravel

解决方案


正如我之前所说,我缺少一些脚本。这解决了我的问题。

<form method="get" id="company_change">
        <label for="company">Company:</label>
        <select id="company" name="company" onchange="document.getElementById('company_change').submit()"> 
        <option value="">----Select Company-----</option>
            @foreach($companies as $company)
                <option value="{{$company->id}}">{{$company->name}}</option>
            @endforeach
        </select>
    </form>

我的路线是

Route::resource('owners', 'OwnerController'); 

推荐阅读