Pregunta

¿Hay alguna operación menos equivalente de SQL usando elocent ORM?

por ejemplo

$ Model1= Modelo :: Donde ('Algunas restricciones aplicadas') $ Model2= Modelo :: Dónde ('Algunas restricciones aplicadas')

Quiero obtener todos los modelos que existen en $ Model1 pero no en $ Model2

¿Fue útil?

Solución

La respuesta de Seblaje se ve bien, aunque ejecutará 3 consultas.Otra opción es el método DIFT () del objeto de recolección:

$result = $model1->diff($model2);

Esto funciona después de obtener datos de la DB con 2 consultas, pero complete el conjunto de datos (a menos que haya más dependiendo de sus 'restricciones aplicadas').

Otros consejos

La forma más fácil que veo es:

//Get the id's of first model as array
$ids1 = $model1->lists('id');

//get the id's of second models as array
$ids2 = $model2->lists('id');

//get the models
$models = Model::whereIn('id',$ids1)->whereNotIn('id',$ids2)->get();

Este no es un código probado, lea más sobre las consultas elocuentes aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top