如何将原始查询转换为 Laravel Eloquent 方式
How to convert raw query into Laravel Eloquent way
我有这个原始查询。
我怎样才能把这个转换成 Laravel eloquent.
SELECT * FROM `results` AS q
INNER JOIN `answers`AS a ON q.question_id = a.question_id
AND q.team1 = a.team1
AND q.team2 = a.team2
AND q.score1 = a.score1
// Table relationships.
results hasMany answers.
results hasMany predictions.
Prediction is another model here.
假设Result
是tableresults
的模型:
Result::join('answers', function ($join) {
$join->on('answers.question_id', '=', 'results.question_id')
->on('answers.team1', '=', 'results.team1')
->on('answers.team2', '=', 'results.team2')
->on('answers.score1', '=', 'results.score1');
})->get();
据我了解你的问题,你无法与联接建立关系。
请试试这个查询。
Result::join('results as q', function ($join) {
$join->on('answers.question_id', '=', 'q.question_id')
->on('user_answers.team1', '=', 'q.team1')
->on('user_answers.team2', '=', 'q.team2')
->on('user_answers.score1', '=', 'q.score1')
->on('user_answers.score2', '=', 'q.score2');
})->get();
现在您可以运行另一个查询来获取关系数据。
我有这个原始查询。 我怎样才能把这个转换成 Laravel eloquent.
SELECT * FROM `results` AS q
INNER JOIN `answers`AS a ON q.question_id = a.question_id
AND q.team1 = a.team1
AND q.team2 = a.team2
AND q.score1 = a.score1
// Table relationships.
results hasMany answers.
results hasMany predictions.
Prediction is another model here.
假设Result
是tableresults
的模型:
Result::join('answers', function ($join) {
$join->on('answers.question_id', '=', 'results.question_id')
->on('answers.team1', '=', 'results.team1')
->on('answers.team2', '=', 'results.team2')
->on('answers.score1', '=', 'results.score1');
})->get();
据我了解你的问题,你无法与联接建立关系。
请试试这个查询。
Result::join('results as q', function ($join) {
$join->on('answers.question_id', '=', 'q.question_id')
->on('user_answers.team1', '=', 'q.team1')
->on('user_answers.team2', '=', 'q.team2')
->on('user_answers.score1', '=', 'q.score1')
->on('user_answers.score2', '=', 'q.score2');
})->get();
现在您可以运行另一个查询来获取关系数据。