我有我不能修復一個問題:要求的作品,與Laravel查詢生成器,似乎不工作
這一要求在phpMyAdmin工作
SELECT cronState.name, command.name, parameter.keyword, eventParameterValue.value
FROM cronState, commandInstance, command, eventParameterValue, parameter
WHERE cronState.id = commandInstance.cronState_id
AND commandInstance.command_id = command.id
AND eventParameterValue.commandInstance_id = commandInstance.id
AND eventParameterValue.parameter_id = parameter.id
AND cronState.id =32
返回:
name name keyword value
on20 DigitalPinSet State 1
on20 PwmPinSet DutyCycle 20
它是我想要的。
小編輯:我使用AJAX請求(與state_name)這個方法應該返回查詢結果。
現在,當我嘗試使用Laravel Query Builder實現它時,它會返回一些錯誤。
我的代碼:
$cronState_id = DB::table('cronState')
->where('name', Input::get('state_name'))
->first();
$cronEvent = DB::table('cronState')
->join('commandInstance', 'commandInstance.cronState_id', '=', 'cronState.id')
->join('command', 'commandInstance.command_id', '=', 'command.id')
->join('eventParameterValue', 'eventParameterValue.commandInstance_id', '=', 'commandInstance.id')
->join('eventParameterValue', 'eventParameterValue.parameter_id', '=', 'parameter.id')
->where('cronState.id', '=', $cronState_id->id)
->select('cronState.name', 'command.name', 'parameter.keyword', 'eventParameterValue.value');
foreach($cronEvent as $result){
$ev = $result['keyword'];
}
return $ev;
此代碼的錯誤:
{ 「錯誤」:{ 「類型」: 「ErrorException」, 「消息」:「未定義指數: 關鍵字」, 「文件」: 「/無功/網絡/級/應用/控制器/ EventController.php」, 「行」:48}}
如果我改變
foreach($cronEvent as $result){
$ev = $result['keyword'];
}
return $ev;
到
return $cronEvent;
(只要刪除foreach循環,並重新命名返回變量),我有這樣的錯誤:
{ 「錯誤」:{ 「類型」: 「ErrorException」 ,「message」:「類的對象 Illuminate \ Database \ Query \ Builder無法轉換爲 string」,「file」:「/ var/www/stage/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php「,」line「:361}}
那麼,如何才能訪問我的數據中的對象呢?也許我的查詢生成器實施不起作用...
感謝您的任何幫助!
'$ cronEvent'是查詢生成器對象,而不是結果集。你需要調用'get()','first()'或'paginate()'來獲得結果。 – itachi
是的,當然。這是我的一個錯誤...我真是愚蠢的哈哈。它現在很好用。 – Runerod