Voglio fare un join con più condizioni:
->join("filters", function($join) {
$join->on("filters.result_id", "=", "results.id");
$join->on("filters.result_filter_id", "=", 2);
$join->on("filters.value", ">", 1);
})
Ciò si traduce in un errore:
Colonna sconosciuta "2" in "clausola"
Come posso utilizzare i valori effettivi nella condizione join senza averlo interpretato in modo eloquente come nome di colonna? Funziona bene con la query SQL reale:
JOIN filters ON filters.result_id = results.id
AND filters.result_filter_id = 2
AND filters.value > 1
risposte:
0 per risposta № 1Sostituire on
con where
se vuoi filtrare il tuo join
Se si desidera utilizzare una clausola di stile "where" sui propri join, è possibile utilizzare i metodi where e oWhere su un join
->join("filters", function($join) {
$join->on("filters.result_id", "=", "results.id")
->where("filters.result_filter_id", "=", 2)
->where("filters.value", ">", 1);
})