存在しません。私は関係ReportUpload
「status
のsのプロパティがReportUpload
関係はdoesnの0 またはに等しい」すべてReport
モデルを取得したいと思い存在しない。 Report
とReportUpload
モデルは1対1の関係を持ち、ReportUpload
はReport
に属します。が雄弁:関係プロパティが0または関係である熱心な負荷の関係を制約することは
雄弁の関係の制約や他の方法を使って、これについてどうやって行くのかはっきりしません。どんな助けもありがとう。
ここに私の現在のコードです:
// initial query
$reports = Report::whereHas('link', function($query) {
$query->where('status', 'complete');
})->with('student', 'course', 'institution', 'reportUpload');
// apply constraint
if ($request->has('uploadStatus')) {
$uploadStatus = $request->has('uploadStatus'); // 0 or 1
if ($uploadStatus === 0) {
$reports = $reports
->whereDoesntHave('reportUpload')
->orWhereHas('reportUpload', function($query) use ($uploadStatus) {
$query->where('status', $uploadStatus);
});
} else {
$reports = $reports->whereHas('reportUpload', function($query) use ($uploadStatus) {
$query->where('status', $uploadStatus);
});
}
}
コードは、望ましい結果が得られていませんが。
編集
このアプローチをしようが、それが正しいかどうかわからない:クエリを分離する
$reports = $reports
->where(function ($query) use ($uploadStatus) {
$query
->whereDoesntHave('reportUpload')
->orWhereHas('reportUpload', function($query) use ($uploadStatus) {
$query->where('status', $uploadStatus);
});
});
[WhereDoesnHave](https://laravel.com/api/5.1/Illuminate/Database/Eloquent/Builder.html#method_whereDoesntHave)が役立つ可能性がありますか? –
私はそれを使用することをお勧めですか?それはすでに質問の中で私のコードに入っているからです。あなたが何か他のことを意味したら、明確にしてください、ありがとうございます。 – haakym
すみません、@haakym、私は質問を誤解しました、私は私の前のコメントは関係がないと思う。ごめんなさい! –