laravel - Converting sql to eloquent -


i'm trying write self join in eloquent, here in sql

select t2.id products t1, products t2  t1.id = 1  , t2.id != 1 , (t1.color_id = t2.color_id or t1.process_id = t2.process_id or t1.length_id = t2.length_id or t1.size_id = t2.size_id  or t1.height_id = t2.height_id) order rand() limit 10 

here have in eloquent:

product::join('products t2', 'products.id', '=', 't2.id')     ->select('t2.id')     ->where('products.id', 1)     ->where('t2.id', '!=', 1)     ->where(function($query){         $query->where('products.color_id', '=', 't2.color_id')         ->orwhere('products.process_id', '=', 't2.process_id')         ->orwhere('products.length_id', '=', 't2.length_id')         ->orwhere('products.size_id', '=', 't2.size_id')         ->orwhere('products.height_id', '=', 't2.height_id');       })     ->get(); 

i have yet add order , limit eloquent - trying results out first.

the problem eloquent it's producing 0 results, sql give me results expect, going wrong?

edit

i have modified query to:

product::join('products t2', 'products.id', '=', 't2.id') ->select('t2.id') ->where(function($query){     $query->where('products.color_id', '=', 't2.color_id')     ->orwhere('products.process_id', '=', 't2.process_id')     ->orwhere('products.length_id', '=', 't2.length_id')     ->orwhere('products.size_id', '=', 't2.size_id')     ->orwhere('products.height_id', '=', 't2.height_id');   }) ->get(); 

but still 0 results.

edit 2

here sql statement being run:

select      `t2`.`id`       `products` inner join `products` `t2`  on      `products`.`id` = `t2`.`id` (     `products`.`look_color_id` = ? or      `products`.`process_id` = ? or      `products`.`length_id` = ? or     `products`.`size_id` = ? or      `products`.`height_id` = ? )  


Comments

Popular posts from this blog

javascript - gulp-nodemon - nodejs restart after file change - Error: listen EADDRINUSE events.js:85 -

Fatal Python error: Py_Initialize: unable to load the file system codec. ImportError: No module named 'encodings' -

javascript - oscilloscope of speaker input stops rendering after a few seconds -