Rudra FrameworkRudra Framework

Рекомендуется использовать строитель запросов в репозиториях.

Для использования строителя запросов необходимо обратится к фасаду:

use Rudra\Model\QBFacade;

Построение запроса:

$qString = QBFacade::select()
	->from(self::$table)
	->get();
SELECT * FROM test ;

Получение данных:

$result = Test::qBuilder($qString);

2.

$qString = QBFacade::select('id, title')
	->from(self::$table)
	->get();
SELECT id, title FROM test ;

Получение данных:

$result = Test::qBuilder($qString);

3.

$qString =  QBFacade::select('id, title', 'created_at')
	->from(self::$table)
	->where(':id')
	->and(':created_at')
	->get();
SELECT id, title FROM test WHERE id = :id AND created_at = :created_at ;

Получение данных:

$result = Test::qBuilder($qString, [
	':id'		  => 1,
	':created_at' => '2022-02-23 14:36:06'
]);

Также доступны следующие конструкции:

->where(':id')
->or(':created_at')
->where(':id AND :created_at')
->where(':id OR :created_at')
->where('id BETWEEN :id AND :id2')
->where('id LIKE :search')
->limit('10')->offset('20')

Для объединения таблиц по ключу:

->join("users")->on("items.user_id = users.id")

По умолчанию тип объединения LEFT JOIN, для изменения типа объединения:

->join("users", "RIGHT")->on("items.user_id = users.id")
->join("users", "INNER")->on("items.user_id = users.id")
->join("users", "CROSS")->on("items.user_id = users.id")

Для формирования строки запроса строитель всегда должен заканчиваться методом.

->get();