Laravel Eloquent Comparer Les Valeurs Des Colonnes
Éloquent where() semble ne pas fonctionner lorsque l'on compare deux valeurs de colonne. Comment résoudre ce problème?
exemple de code:
->where('table_1.name', '=', 'table_2.name')
Mais fonctionne sur:
->where('table_1.name', '=', 'john')
19
demandé sur
Jake Opena
2015-05-19 19:41:07
3 réponses
Échappement est inutile dans ce cas, vous pouvez utiliser whereRaw():
->whereRaw('table_1.name = table_2.name')
34
répondu
Limon Monte
2015-05-19 16:44:37
Vous pouvez utiliser la colonne where:
->whereColumn('table_1.name', 'table_2.name')
18
répondu
Carolyn Lim
2016-08-15 03:50:17
j'ai pensé à elle. 'table_2.name' est interprété comme une chaîne simple et non une colonne de table mysql.
solutions possibles:
Wrap
'table_2.name'\DB::raw()->where('table_1.name', '=', \DB::raw('table_2.name'))envelopper toute l'expression avec
whereRaw()(d'après la réponse de @limonte)->whereRaw('table_1.name = table_2.name')
11
répondu
Jake Opena
2015-05-19 16:54:21