2016-03-18 5 views
1

Я теряю голову над этим запросом. Мне очень нужна помощь по этому вопросу:Laravel 5.1 Яркий или где-то подзапрос

SELECT COUNT(*) FROM customers 
WHERE (SELECT count(*) FROM customerEmails WHERE email = :email) > 0 
OR (SELECT count(*) FROM customerPhoneNumbers WHERE phoneNumber = :cellphone) > 0 
OR cellphone = :cellphone 
OR email = :email 

Я не знаю, должен ли быть красноречивый код для этого. ТИА!

+0

Есть ли у вас отношения? и обеспечить надлежащую схему требуемых таблиц. – nextt1

+0

Ваш запрос недопустим sql, как он написан. Вы не сможете получить laravel для создания этого. – delatbabel

ответ

2

Вы можете использовать метод Eloquent whereHas (чуть выше этого якоря) для условной загрузки Customer s в зависимости от их отношений с другими объектами. Предполагая, что у вас есть модель под названием Customer, вы можете попробовать:

$count = Customer::whereHas('customerEmails', function ($query) use ($email){ 
    $query->where('email', $email); 
}) 
->orWhereHas('customerPhoneNumbers', function ($query) use ($cellphone){ 
    $query->where('phoneNumber', $cellphone); 
}) 
->orWhere('cellphone', $cellphone) 
->orWhere('email', $email) 
->count(); 
+0

Спасибо! – taishi06

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