"prealerts"テーブルに結合された "jobs"テーブルに基づいて失敗したジョブのリストを取得する必要があります。唯一の仲介者は、 "prealerts"で1つの列を共有し、 "jobs"でもう1つの列を共有する "パッケージ"テーブルです。Laravelで3つのテーブルを結合しても動作しません
All the structure mentioned before is hereが
filters.blade.php:
<input type="checkbox" name="failed" id="failedJobs" value="true"/>
(ここではチェックボックスがあります)そして、私は何をしようとしたが、次のとおりです。
構造はこれです
JobRepositoriy.php:
public function search(array $filters = [])
{
.
.
.
.
$query = $this->model
->select('jobs.*')
->distinct();
.
.
.
.
if (isset($filters['failed']) && $filters['failed']){
$query->ofSuccess(false);
}
return $query->orderBy('jobs.id', 'desc');
}
jobs.php(モデル):
public function scopeOfSuccess($query, $success){
return $query->join('packages', 'packages.job_id', '=', 'jobs.id')
->join('prealerts', 'prealerts.package_id', '=', 'packages.id')
->where('prealerts.created_at', '>=', '2017-01-01 00:00:00')
->where('prealerts.success', $success);
}
しかし、示された結果は、前述の要件を満たしていません。あなたが試すことができ
を私が前にLaravelを使用し、正直に言うと、それをお勧めしません。いくつかのトピックについてのガイダンスが不十分な新しいフレームワークです。しかし、それは私の意見です。 – Californium
あなたは今何を得ていますか? –
@californiumそれは私の仕事の必要条件です。私はlaravelもあまりにも嫌いです – Cristian