Así que tengo dos tablas y esta es la columna que tienen.
TableA = id, slug, id_usuario, id_amigo, id_padre
TableB = id, id_usuario, id_amigo
Este es mi código de ejemplo
$tableA = TableA::where('slug', '3')->first(); $tableB = TableB::where( function ($query) use ($tableA) { $query->where('user_id', $tableA->user_id); $query->where('friend_id', $tableA->friend_id); $query->where('tableA.parent_id','=','2'); })->exists();Parece que solo estos dos donde las condiciones están funcionando.
$query - > where('user_id', $tableA - > user_id); $query - > where('friend_id', $tableA - > friend_id);El último donde las condiciones no funcionaron. Alguien sabe qué está mal en mi codificación.
$query - > where('tableA.parent_id', '=', '2');prueba con esta consulta
$query->where($tableA->parent_id, '=', '2');es porque tableA es una variable, no una relación
En la última condición, escribe la condición para la tabla A. No funcionará.
Puedes probar esto
$tableA = TableA::where('slug', '3')->where('tableA.parent_id','=','2')->first(); $tableB = TableB::where( function ($query) use ($tableA) { $query->where('user_id', $tableA->user_id); $query->where('friend_id', $tableA->friend_id); })->exists();También le recomiendo que intente hacer esta lógica con una consulta, usando combinación o subconsulta. puedes leer esto