$authors = Author::find()->with('posts')->all(); // fetches the authors with their posts
foreach($authors as $author) {
echo "<h2>Author : " . $author->name . "</h2>";
echo "<ul>";
foreach($author->posts as $post) { // no query executed here
echo "<li>" . $post->title . "</li>";
}
echo "</ul>";
}
SELECT * FROM author;
SELECT * FROM post WHERE author_id IN (1, 3, 7, 10, ... X);
public function actionSettings()
{
// Проверка доступа
self::checkAdmin();
// Получаем идентификатор пользователя из сессии
$userId = Company::checkLogged2();
// Получаем информацию о пользователе из БД
$user = Company::getUser2ById($userId);
$company = Company::getCompanyById($companyId);
// Подключаем вид
require_once(ROOT . '/views/admin/settings.php');
return true;
}
/**
* Возвращает пользователя с указанным id
* @param integer $id <p>id пользователя</p>
* @return array <p>Массив с информацией о пользователе</p>
*/
public static function getUser2ById($id)
{
// Соединение с БД
$db = Db::getConnection();
// Текст запроса к БД
$sql = 'SELECT * FROM user WHERE id = :id';
// Получение и возврат результатов. Используется подготовленный запрос
$result = $db->prepare($sql);
$result->bindParam(':id', $id, PDO::PARAM_INT);
// Указываем, что хотим получить данные в виде массива
$result->setFetchMode(PDO::FETCH_ASSOC);
$result->execute();
return $result->fetch();
}
/**
* Возвращает информацию о компании с заданным id
* @param integer $id <p>id компании</p>
* @return array <p>Массив с информацией о компании</p>
*/
public static function getCompanyById($id)
{
// Соединение с БД
$db = Db::getConnection();
// Текст запроса к БД
$sql = 'SELECT * FROM company WHERE id = :id';
// Используется подготовленный запрос
$result = $db->prepare($sql);
$result->bindParam(':id', $user['company_id'], PDO::PARAM_INT);
// Указываем, что хотим получить данные в виде массива
$result->setFetchMode(PDO::FETCH_ASSOC);
// Выполнение коменды
$result->execute();
// Получение и возврат результатов
return $result->fetch();
}
function isHidden(el){
return el.offsetParent===null
}
function checkParent(target,nodes){
var ignore=[];
var result=[];
while(target.parentNode){
for(var q=0;q<nodes.length;q++){
var node=nodes[q]
if(node==target){
ignore.push(q);
}
}
target=target.parentNode;
}
for(var q=0;q<nodes.length;q++){
if(ignore.indexOf(q)>-1){
continue};
result.push(nodes[q])
}
return result
}
function showBox(e){
var from = this.getAttribute('data-from');
var parent=this.closest('.opened');
var box = parent.querySelector('.unblock');
var hidden=isHidden(box);
if(hidden){
setTimeout(function(){box.classList.add('_show-box','open')},1);
}
return false;
}
function hideBox(e){
var target=e.target;
var openNodes=document.getElementsByClassName('_show-box');
var hideLis=checkParent(target,openNodes)
for(var q=0;q<hideLis.length;q++){
var box=hideLis[q];
box.classList.remove('_show-box','open');
}
}
function setAddEventListener(nodes,event,hendler){
for(var q=0;q<nodes.length;q++){
nodes[q].addEventListener(event,hendler);
}
}
var nodes=document.getElementsByClassName('close');
document.addEventListener('click',hideBox)
setAddEventListener(nodes,'click',showBox)
<div class="row opened"> <!-- родительский -->
<div class="col ea-switch">
<div class="act_actions_menu_icons close" aria-label="Действия" role="button" onclick=""><span class="blind_label">Действия</span></div>
<div class="act_actions_menu unblock">
<a href="" class="ui_actions_menu_item">Редактировать</a>
<a href="" class="ui_actions_menu_item">Удалить</a>
</div>
</div>
</div>
<div class="row opened"> <!-- родительский -->
<div class="col ea-switch">
<div class="act_actions_menu_icons close" aria-label="Действия" role="button" onclick=""><span class="blind_label">Действия</span></div>
<div class="act_actions_menu unblock">
<a href="" class="ui_actions_menu_item">Редактировать</a>
<a href="" class="ui_actions_menu_item">Удалить</a>
</div>
</div>
</div>
public static function getProductsList()
{
// Соединение с БД
$db = Db::getConnection();
// Получение и возврат результатов
$result = $db->query('SELECT id, name, category_id, category.name as category_name '
. 'FROM product JOIN `category` ON `category`.`id` = `product`.`category_id` '
. 'WHERE category_id = :category_id ORDER BY id DESC');
$productsList = array();
$i = 0;
while ($row = $result->fetch()) {
$productsList[$i]['id'] = $row['id'];
$productsList[$i]['category_id'] = $row['category_id'];
$productsList[$i]['name'] = $row['name'];
$i++;
}
return $productsList;
}
SELECT id, name, category_id, category.name as category_name '
. 'FROM product JOIN `category` ON `category`.`id` = `product`.`category_id` '
. 'WHERE category_id = :category_id ORDER BY id DESC
У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около ''
. 'WHERE status = 1 AND category_id = :category_id '
' на строке 1