/ / laravel più condizioni di join con valori interi - mysql, laravel, join, eloquent

condizioni di join multiple di laravel con valori interi - mysql, laravel, join, eloquent

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 № 1

Sostituire 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);
})

Documentazione