2016-10-31 19 views
0

私が受け取っているエラーメッセージが分からないため、何が問題なのかよく分かりません。間違った関係で「belongsTo」関係を取得するときに問題が発生する

私は私の車のモデルで、次の関係を持つ

/** 
* The dealer the vehicle belongs to (one-to-one relationship) 
* 
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo 
*/ 
public function dealer() 
{ 
    return $this->belongsTo('App\Dealer'); 
} 

/** 
* The vehicle's specifications 
* 
* @return \Illuminate\Database\Eloquent\Relations\HasMany 
*/ 
public function specifications() 
{ 
    return $this->hasMany('App\Specification'); 
} 

私は次のエラーを取得$依頼で「州」があります場合は、以下のメソッドを呼び出す場合は、次のApp \プロジェクト\の引数2がありませんがFrontend \ Repo \ Vehicle \ EloquentVehicle :: App \ Project \ Frontend \ Repo \ Vehicle {closure}()

リクエストに「市区町村」があるときにもエラーが表示されます。

エラーの意味はわかりませんが、スイッチの州のこのコード行を指しています。

$query = $query->whereHas('dealer', function($subQuery, $request, $value) 
+0

コールバックが 'with( 'specifications')'でなければなりません '(' specifications '、function(specifications){}) 'にもコールバックがありません。 'with( 'dealer')' – Beginner

答えて

1

useを使用しているので、あなたのコールバックで望んでいた変数にアクセスしますサブクエリで使用する必要があり、それをしようとしていた方法が間違っていました。既存の変数を使用する代わりに新しい変数を作成していました。見た目は次のようになります:

->whereHas('dealer', function($subQuery) use($request) 
    { 
     $subQuery->where('province', $request->input($value)); 
    })->with('dealer'); 
0

->with('dealer')を使用してみてくださいする前に->whereHas

$query = $query->with('dealer') 
    ->whereHas('dealer', function($subQuery, $request, $value) { 
     $subQuery->where('city', $request->input($value)) 
      ->where('province', $request->input('province')); 
    }); 
+0

これは違いはありませんでした。私はまだ同じエラーが発生しています。 – VenomRush

0

あなた

$query = $query->whereHas('dealer', function($subQuery, $request, $value) { 
    $subQuery->where('province', $request->input($value)); 
})->with('dealer'); 
break; 

オードでこの

$search = $request->input($search); 
$query = $query->whereHas('dealer', function($subQuery) use ($search) { 
{ 
    $subQuery->where('province', $search); 
})->with('dealer'); 

あなた必要use ($search)ようにする必要がありますR別の関数

+0

これは何の違いもありませんでした。それでも同じエラーが発生します。 apiは - > with()が1つのパラメータしか受け付けないことを示しています。 – VenomRush

0
$query = $query->with('dealer')->whereHas('dealer', function($subQuery) use ($request, $value) 
{ 
    $subQuery->where('city', $request->input($value)) 
     ->where('province', $request->input('province')); 
}); 

のみ、彼らはあなたの閉鎖でサブクエリを$使用して$request$value変数はインフォあなたを持っている追加の変数を注入する

関連する問題