2016-10-13 1 views
-1

Я пытаюсь выполнить запрос, где мне нужно подсчитать isApprove столбец со значением 1 в моем approvals_document. Вот как я это сделал в SQL-запросе.В чем причина Call to undefined method Illuminate Database Query Expression :: whereRaw()?

SELECT documents.id, documents.isApprove, 
(SELECT COUNT(*) FROM approvals_document WHERE approvals_document.isApprove = 1 and approvals_document.document_id = documents.id) as approvedBy 
FROM documents; 

Выход:

id | isApprove | approvedBy 
96  0   3 

Когда я выступаю в этом Laravel с помощью DB::raw и whereRaw выражение. Это вызывает у меня ошибку.

Призыв к неопределенным метод Осветите \ Database \ Query \ Expression :: whereRaw()

Вот как я выполнил его в Laravel образом.

public function count() 
{ 
    $count = DB::table('documents') 
    ->select('documents.id', 'documents.isApprove', DB::raw('COUNT(FROM approvals_document) as approvedBy') 
    ->whereRaw('approvals_document.isApprove = 1 and approvals_document.document_id = documents.id')) 
    ->get(); 
    dd($count); 
} 

Любая помощь, как я получил эту проблему? Любая помощь будет оценена!

Обновление: я следил за советами aynber, используя левое соединение, но я получил эту ошибку.

SC

ответ

0

У вас есть ваша скобка перепутаны. Вам нужен дополнительный один за ваш выбор, а не после whereRaw:

$count = DB::table('documents') 
->leftJoin('approvals_document','documents.id','=','approvals_document.document_id') 
->select('documents.id', 'documents.isApprove', DB::raw('COUNT(approvals_document.*) as approvedBy')) // Close your DB::raw and your select here 
->whereRaw('approvals_document.isApprove = 1 and approvals_document.document_id = documents.id') 
->get(); 
+0

я получил ошибку возле «FROM approvals_document) в approvedBy от' documents' где approvals_document»в строке 1. – Francisunoxx

+0

Удалите FROM, он используется только для выбора таблицы. Я буду обновлять запрос с тем, каким он должен быть. – aynber

+0

Я также добавил команду JOIN, так как он, вероятно, не связал бы две таблицы вместе. – aynber

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