0

私はしばらくこれに取り組んできました。私がやりたいことは、選択ボックスから選択された値の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);
    }
4

2 に答える 2

0

->lists('companyname', 'companyname')に変更->lists('companyname', 'id')

モデルidのテーブルのを返します。Company

于 2015-12-29T20:34:18.580 に答える