Nasıl ORM sorgularda VEYA VE karıştırıp

0 Cevap php

Ben Kohana 2.3 kullanan ve belirli bir ORM sorgu ile sorun yaşıyorum bir site geliştiriyorum. Esasen ne yapıyorum aşağıdaki sorgu

SELECT *
   FROM 'records'
   WHERE ('ServRepSupervisor' = name AND 'Followup_read' = 0) OR ('ServRepSupervisor' = name AND `read` = 0)

Bu gibi ORM sorgu çalıştığınızda ...

$unread = ORM::factory('record')
   ->where(array('ServRepSupervisor' => Auth::instance()->get_user()->name, 'Followup_read' => 0))
   ->orwhere(array('ServRepSupervisor' => Auth::instance()->get_user()->name, 'read' => 0))
   ->find_all();

i ile sona sorgu

SELECT `records`.*
   FROM (`records`)
   WHERE `ServRepSupervisor` = 'name' AND `Followup_read` = 0
   OR `ServRepSupervisor` = 'name'
   OR `read` = 0

Nasıl amaçlanan sonuç üretmek için ORM sorgu rework olabilir?

EDIT: Ben çalışmak için başardı ama çok şık bir çözüm gibi görünmüyor.

$unread = ORM::factory('record')
   ->where('(\'ServRepSupervisor\' = \'' . Auth::instance()->get_user()->name . '\' AND \'Followup_read\' = 0) OR (\'ServRepSupervisor\' = \'' . Auth::instance()->get_user()->name . '\' AND \'read\' = 0)')
   ->find_all();

Bu benim istediğim dataset döndüren ama sadece çirkin bir kod. Bunu yapmanın daha iyi bir yolu olmalı.

0 Cevap