我想在下拉菜单中选择公司,它会向您显示该公司的所有者但是当我从我的控制器中的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');
它仍然相同。
答案 0 :(得分:0)
不确定你想要什么。但这里有适合你的东西。
File =&gt; create.blade.php
<form action='/item' method='POST'>
<label>Item Name:</label>
<input type="text" name="name" class="form-control input-sm">
<label>Company:</label>
<select id="company" name="company" class="form-control input-sm">
@foreach($companies as $company)
<option value="{{ $company->id }}">{{ $company->name }}</option>
@endforeach
</select>
<button class="btn btn-primary">Create</button>
</form>
File =&gt; ItemController.php
public function store(Request $request)
{
try {
$this->validate($request, [
'company_id' => 'required',
'name' => 'required|unique:items,name'
]);
$obj = new Item();
$obj->company_id = $request->input('company_id');
$obj->name = $request->input('name');
$obj->save();
return redirect()->route('item.index')
->with('success', 'Create Successful');
} catch (\Exception $ex) {
Log::error($ex->getMessage());
return redirect()->route('item.create')
->with('fail', $ex->getMessage());
}
}
答案 1 :(得分:0)
你不需要一张表格来填写你的下拉列表; 你在公司和老板之间的模型中创建了一个关系,你甚至不需要在哪里,只需像这样使用雄辩的
$owners = Owner::get();
然后在您看来,只需使用雄辩的公司:
$owner->company->name;
就是这样!
答案 2 :(得分:0)
正如我之前所说,我错过了一些剧本。这解决了我的问题。
<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');