2016-12-13 3 views
0

Я пытаюсь решить проблему, когда с помощью конструктора запросов Laravel, я не подвожу никаких результатов, но когда я запускаю тот же запрос в PHP моего админа я получил результат в ..Laravel запрос строителя возвращение пустых, где это возвращает PHPMYADMIN результатов

Это запрос:

DB::table('nm_product')->select(
    DB::raw(
     'IF(LOCATE(" ",pro_title,POSITION("'.$products 
     .'" IN pro_title))<>"0",SUBSTR(pro_title,POSITION("'.$products 
     .'" IN pro_title),LOCATE(" ",pro_title,POSITION("'.$products 
     .'" IN pro_title)) - POSITION("'.$products 
     .'" IN pro_title)) , "aaa") as keyword' 
    ), 
    'mc_name', 
    'pro_title' 
)->join('nm_maincategory', 'mc_id', '=', 'pro_mc_id' 
)->where(DB::raw('LOWER(pro_title)'),'like','"% '.$products.'%"' 
)->orwhere(DB::raw('LOWER(pro_title)'),'like','"'.$products.'%"' 
)->get(); 

ответ

0

Вы можете увидеть, что запрос выполняется, это способ процессов тестирования:

#Last Query 
\DB::enableQueryLog(); 

// code request 
DB::table('nm_product')->select(... 

$query = \DB::getQueryLog(); 
$lastQuery = end($query); 
\Log::info(json_encode($lastQuery)); 

Пример:

Вы получаете что-то вроде этого

array:3 [ 
    "query" => "select * from `table` where `table`.`id` = ?" 
    "bindings" => array:1 [▼ 
    0 => 1 
    ] 
    "time" => 0.5 
] 

и замены значения привязок в запросе можно запустить вывод непосредственно в базе данных, чтобы увидеть, если запрос является правильным

Select * from `table` where `table`.`id` = 1 
0
 
    [1] => Array 
      (
       [query] => select IF(LOCATE(" ",pro_title,POSITION("can" IN pro_title))"0",SUBSTR(pro_title,POSITION("can" IN pro_title),LOCATE(" ",pro_title,POSITION("can" IN pro_title)) - POSITION("can" IN pro_title)) , "aaa") as keyword, `mc_name`, `pro_title` from `nm_product` inner join `nm_maincategory` on `mc_id` = `pro_mc_id` where LOWER(pro_title) like ? or LOWER(pro_title) like ? 
       [bindings] => Array 
        (
         [0] => "% can%" 
         [1] => "can%" 
        ) 

       [time] => 0.52 
      ) 

Я заменил переменные и поместил запрос в phpmyadmin, и я получил эти результаты

Display Image

+0

хранить результат в переменной '$ foo = DB :: table ('nm_product') -> select (...' then print this using 'dd ($ foo-> toArray())' –

+0

'Fatal Error : Вызов функции-члена toArray() в массиве –

+0

попробуйте запустить только '$ foo = DB :: table ('nm_product') -> get();' 'dd ($ foo-> toArray());' –

 Смежные вопросы

  • Нет связанных вопросов^_^