加入我需要使用不同的參數,如加入到創建一個查詢:FuelPHP查詢生成器在多個領域
SELECT foo.*, bar.* FROM foo LEFT JOIN bar ON foo.c1 = bar.c1 AND foo.c2 = bar.c2 WHERE foo c3 = "somedata";
的問題是,我無法找到如何創建「和」使用FuelPHP查詢生成器。
謝謝。
加入我需要使用不同的參數,如加入到創建一個查詢:FuelPHP查詢生成器在多個領域
SELECT foo.*, bar.* FROM foo LEFT JOIN bar ON foo.c1 = bar.c1 AND foo.c2 = bar.c2 WHERE foo c3 = "somedata";
的問題是,我無法找到如何創建「和」使用FuelPHP查詢生成器。
謝謝。
可以通過一個連接使用多個 - > on。在這種情況下,Builder將使用「AND」將它們組合起來。
它們編譯條件使得不能設定值等status
= 1
我增加了功能在編譯on_string到\燃料\核心\ Database_Query_Builder_Join
public function on_string($string) {
$this->_on_string = $string;
return $this;
}
的方式()
if ($this->_on_string == "") { //yau add on string
$conditions = array();
foreach ($this->_on as $condition) {
// Split the condition
list($c1, $op, $c2) = $condition;
if ($op) {
// Make the operator uppercase and spaced
$op = ' ' . strtoupper($op);
}
// Quote each of the identifiers used for the condition
$conditions[] = $db->quote_identifier($c1) . $op . ' ' . $db->quote_identifier($c2);
}
// Concat the conditions "... AND ..."
$sql .= '(' . implode(' AND ', $conditions) . ')';
} else {
$sql .= '(' . $this->_on_string . ')'; //yau add on string
}
將您的方法也暴露給Database_Query_Builder_Select。
public function on_string($string)
{
$this->_last_join->on_string($string);
return $this;
}
我不認爲這是坦貞攸需要的。 您可以根據字符串的選擇,但你需要躲避價值的,像這樣:
->on('t.object_property', '=', \DB::quote($property));
不知道FuelPHP但他們的文檔中清楚地顯示如何做到這一點。例如'('foo') - > join('bar','LEFT') - > on('foo.c1','=','foo.c1)中的$ result = DB :: select ') - > where('foo.c3',「somedata」) - > execute();' – Reflective