2017-08-10 41 views
0

DB查詢:如何給laravel提供子查詢?

Select * from deviceCategory Where deviceCategory.subCategoryId IN('Select subCategoryId From subCategory where subCategoryName=$value'); 

這是原始數據庫查詢我都試過了。但它不工作。我想要的是,首先,我需要根據傳遞給控制器​​的值,從subCategory表中獲取subCategoryId。使用選定的ID,我需要將其與另一個表進行比較,以獲得相同的id匹配,並獲取該表的詳細信息。

控制器代碼:

public function checkDeviceCategory($value) 
{  
$users=DB::select('SELECT * FROM deviceCategory WHERE 
deviceCategory.subCategoryId IN (SELECT subCategoryId FROM 
subCategory WHERE subCategoryName=$value)'); 
echo $users; 
} 

SCRIPT代碼;

<script> 
$(document).ready(function() { 
$('.checkDeviceCategory').click(function() { 
var value=$(this).text(); 
if(value) 
{ 
window.location='checkDeviceCategory/' +value; 

} 
}); 
}); 
</script> 

這是傳遞給控制器​​的值。

+0

你知道PHP變量從未在單引號字符串得到評估? – Mjh

+0

是的。如何糾正它 –

+0

如果您希望將變量評估爲其值,則可以使用雙引號。 – Mjh

回答

1

隨着Query Builder

$sub = DB::table('subCategory') 
    ->where('subCategoryName', '=', $value) 
    ->pluck('subCategoryId'); 

$users = DB::table('deviceCategory') 
    ->whereIn('subCategoryId', $sub) 
    ->get(); 
+0

對不起,它引發錯誤。 **傳遞給Illuminate \ Database \ Grammar :: columnize()的參數1必須是在/ var/www/html/AdminPanel/vendor/laravel/framework/src/Illuminate/Database/Query中調用的字符串類型/Grammars/Grammar.php on line 131 and defined ** - > error –

+0

是的,我試圖糾正它! – iArcadia

+1

stdClass類的對象無法轉換爲字符串 - >現在它拋出像這樣 –