@@ -1185,6 +1185,68 @@ public function testWhereFulltextPostgres()
11851185 $ this ->assertEquals (['Car Plane ' ], $ builder ->getBindings ());
11861186 }
11871187
1188+ public function testWhereAll ()
1189+ {
1190+ $ builder = $ this ->getBuilder ();
1191+ $ builder ->select ('* ' )->from ('users ' )->whereAll (['last_name ' , 'email ' ], '%Otwell% ' );
1192+ $ this ->assertSame ('select * from "users" where ("last_name" = ? and "email" = ?) ' , $ builder ->toSql ());
1193+ $ this ->assertEquals (['%Otwell% ' , '%Otwell% ' ], $ builder ->getBindings ());
1194+
1195+ $ builder = $ this ->getBuilder ();
1196+ $ builder ->select ('* ' )->from ('users ' )->whereAll (['last_name ' , 'email ' ], 'not like ' , '%Otwell% ' );
1197+ $ this ->assertSame ('select * from "users" where ("last_name" not like ? and "email" not like ?) ' , $ builder ->toSql ());
1198+ $ this ->assertEquals (['%Otwell% ' , '%Otwell% ' ], $ builder ->getBindings ());
1199+ }
1200+
1201+ public function testOrWhereAll ()
1202+ {
1203+ $ builder = $ this ->getBuilder ();
1204+ $ builder ->select ('* ' )->from ('users ' )->where ('first_name ' , 'like ' , '%Taylor% ' )->orWhereAll (['last_name ' , 'email ' ], 'like ' , '%Otwell% ' );
1205+ $ this ->assertSame ('select * from "users" where "first_name" like ? or ("last_name" like ? and "email" like ?) ' , $ builder ->toSql ());
1206+ $ this ->assertEquals (['%Taylor% ' , '%Otwell% ' , '%Otwell% ' ], $ builder ->getBindings ());
1207+
1208+ $ builder = $ this ->getBuilder ();
1209+ $ builder ->select ('* ' )->from ('users ' )->where ('first_name ' , 'like ' , '%Taylor% ' )->whereAll (['last_name ' , 'email ' ], 'like ' , '%Otwell% ' , 'or ' );
1210+ $ this ->assertSame ('select * from "users" where "first_name" like ? or ("last_name" like ? and "email" like ?) ' , $ builder ->toSql ());
1211+ $ this ->assertEquals (['%Taylor% ' , '%Otwell% ' , '%Otwell% ' ], $ builder ->getBindings ());
1212+
1213+ $ builder = $ this ->getBuilder ();
1214+ $ builder ->select ('* ' )->from ('users ' )->where ('first_name ' , 'like ' , '%Taylor% ' )->orWhereAll (['last_name ' , 'email ' ], '%Otwell% ' );
1215+ $ this ->assertSame ('select * from "users" where "first_name" like ? or ("last_name" = ? and "email" = ?) ' , $ builder ->toSql ());
1216+ $ this ->assertEquals (['%Taylor% ' , '%Otwell% ' , '%Otwell% ' ], $ builder ->getBindings ());
1217+ }
1218+
1219+ public function testWhereAny ()
1220+ {
1221+ $ builder = $ this ->getBuilder ();
1222+ $ builder ->select ('* ' )->from ('users ' )->whereAny (['last_name ' , 'email ' ], 'like ' , '%Otwell% ' );
1223+ $ this ->assertSame ('select * from "users" where ("last_name" like ? or "email" like ?) ' , $ builder ->toSql ());
1224+ $ this ->assertEquals (['%Otwell% ' , '%Otwell% ' ], $ builder ->getBindings ());
1225+
1226+ $ builder = $ this ->getBuilder ();
1227+ $ builder ->select ('* ' )->from ('users ' )->whereAny (['last_name ' , 'email ' ], '%Otwell% ' );
1228+ $ this ->assertSame ('select * from "users" where ("last_name" = ? or "email" = ?) ' , $ builder ->toSql ());
1229+ $ this ->assertEquals (['%Otwell% ' , '%Otwell% ' ], $ builder ->getBindings ());
1230+ }
1231+
1232+ public function testOrWhereAny ()
1233+ {
1234+ $ builder = $ this ->getBuilder ();
1235+ $ builder ->select ('* ' )->from ('users ' )->where ('first_name ' , 'like ' , '%Taylor% ' )->orWhereAny (['last_name ' , 'email ' ], 'like ' , '%Otwell% ' );
1236+ $ this ->assertSame ('select * from "users" where "first_name" like ? or ("last_name" like ? or "email" like ?) ' , $ builder ->toSql ());
1237+ $ this ->assertEquals (['%Taylor% ' , '%Otwell% ' , '%Otwell% ' ], $ builder ->getBindings ());
1238+
1239+ $ builder = $ this ->getBuilder ();
1240+ $ builder ->select ('* ' )->from ('users ' )->where ('first_name ' , 'like ' , '%Taylor% ' )->whereAny (['last_name ' , 'email ' ], 'like ' , '%Otwell% ' , 'or ' );
1241+ $ this ->assertSame ('select * from "users" where "first_name" like ? or ("last_name" like ? or "email" like ?) ' , $ builder ->toSql ());
1242+ $ this ->assertEquals (['%Taylor% ' , '%Otwell% ' , '%Otwell% ' ], $ builder ->getBindings ());
1243+
1244+ $ builder = $ this ->getBuilder ();
1245+ $ builder ->select ('* ' )->from ('users ' )->where ('first_name ' , 'like ' , '%Taylor% ' )->orWhereAny (['last_name ' , 'email ' ], '%Otwell% ' );
1246+ $ this ->assertSame ('select * from "users" where "first_name" like ? or ("last_name" = ? or "email" = ?) ' , $ builder ->toSql ());
1247+ $ this ->assertEquals (['%Taylor% ' , '%Otwell% ' , '%Otwell% ' ], $ builder ->getBindings ());
1248+ }
1249+
11881250 public function testUnions ()
11891251 {
11901252 $ builder = $ this ->getBuilder ();
0 commit comments