私はしばらくこれに取り組んできました。私がやりたいことは、選択ボックスから選択された値のIDを取得することです。このスニペットを使用すると、ID が取得されず、なぜだろうか。何が間違っているのか混乱しています
このコードは、選択した値の ID を取得するためのものです。
private static function compareCompany(ProductRequest $productRequest){
$companyPicked = $productRequest->companyname;
$listedCompanies = Company::where('user_id', '=', Auth::user()->id);
$companies = new Company;
if($companies->user_id === Auth::user()->id)
{
foreach($listedCompanies as $company) {
if($company->companyname === $companyPicked)
{
return $company->id;
}
}
}
}
これは、会社に対して返された ID を使用して新しい製品を作成することです。
public function store(ProductRequest $productRequest)
{
$product = new Product;
$company = new Company;
if($productRequest->isMethod('post')){
$product->user_id = Auth::user()->id;
$product->company_id = $this->compareCompany($productRequest);
$product->companyname = $productRequest->companyname;
$product->productname = $productRequest->productname;
$product->save();
return redirect()->route('companyindex')->with('message', 'Your question has been posted.');
}else{
return redirect('company-create')->withErrors($productRequest)->withInput();
}
}
これはビューです:
<p>{!! Form::select('companyname', array('' => 'Select a Company') + $listCompanies) !!} </p>
これは、返された値をビューにバインドする際に使用されるコードです。
public function create()
{
$listCompanies = Company::where('user_id', '=', Auth::user()->id)->orderBy('companyname', 'desc')->lists('companyname', 'companyname')->toArray();
return view('product.create')
->with('listCompanies', $listCompanies);
}