Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 01.05.2017
Сообщений: 4

PHP + MVC

01.05.2017, 09:45. Показов 853. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, недавно начал учить php, разрабатываю интернет магазин с MVC
Столкнулся с такой задачей:
Необходимо в шаблон header вывести имя авторизованного пользователя
К примеру вот так я получаю пользователя для личного кабинета
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
class CabinetController //Контроллер личного кабинета
{
  public function actionIndex()
  {
    //получаем идентификатор юзера из сессии
    $userId = User::checkLogged();
    //получаем информацию о пользователе из БД
    $user = User::getUserById($userId);
 
    require_once(ROOT . '/views/cabinet/index.php');
    return true;
  }
}
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class User//модель пользователей
{
  public static function getUserById($id)//получаем пользователя
  {
    if ($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();
    }
  }
}
HTML5
1
2
3
4
5
6
 //Представление
<?php include './views/layouts/header.php' ?>
   <h1>Личный кабинет</h1>
   <img src="<?php echo User::getImageUser($user['id']); ?>" alt="">       
   <p><?php echo $user['name']; ?></p>
<?php include './views/layouts/footer.php' ?>
Задача заключается в том чтобы вывести данные пользователя в header (шапку сайта)
Каким образом можно это сделать? могу ли я как нибудь обратиться к контроллеру из header? или же необходимо писать другую функцию в модели? заранее спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.05.2017, 09:45
Ответы с готовыми решениями:

PHP + MVC
Ну помогите начинающему понять концепцию MVC в более сложной структуре. Поясняю: почитал достаточно много статей по организации...

MVC php
Вопрос такой, Насколько это правильно &lt;?php $name = '&lt;span&gt;'.$datas.'&lt;/span&gt;'; $balance =...

PHP MVC
Всем привет!) Есть класс-маршрутизатор: &lt;?php /* Класс-маршрутизатор для определения запрашиваемой страницы. &gt; цепляет классы...

2
 Аватар для maruo
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
01.05.2017, 11:06
Нужно обращаться не к контроллеру, вы должны были передать все нужные данные вам, в представление.
Так это выглядит у меня.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
namespace frontend\controllers;
 
use Core;
use frontend\FrontendController;
use frontend\models\ReferalModel;
 
class ReferalController extends FrontendController implements \i\IControllers {
 
    public function __construct(){
        parent::init(); 
    }
 
    public function ActionIndex($params = []){
        if(Core::$app->user->isAuth()) {
            return $this->render('referal',[
                'userData' => $this->staticData['userData'],
                'chatData' => $this->staticData['chatData'],
            ]);
        }
        return $this->redirect('/404');
    }
HTML5
1
2
3
4
5
6
7
8
9
10
11
                  <? if(Core::$app->user->isAuth()) { ?>
                      <div class="user-info">
                         <div class="ava middle-block" style="background-image: url(<?=Html::encode($userData['user_avatar']);?>)"></div>
                         <div class="auth-block middle-block">
                            <div class="user-name"><?=Html::encode($userData['user_nickname']);?></div>
                            <a class="link logout-link" href="/logout">Выйти</a>
                         </div>
                      </div>
                  <? }else{ ?>
                        <a class="auth-link link" href="/login">Войти</a>
                  <? } ?>
Что то подобное и в Yii2, ибо за основу я брал Yii2
1
0 / 0 / 0
Регистрация: 01.05.2017
Сообщений: 4
01.05.2017, 13:40  [ТС]
Спасибо за подробный ответ, фреймворки я пока не юзал, учусь пока писать без них, но мысль уловил, попробую
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.05.2017, 13:40
Помогаю со студенческими работами здесь

MVC и php
Помогите решить проблему, нужно сделать вывод данных из формы с помощью MVC фреймворка CodeIgniter. Есть 3 файла: Код файла...

PHP MVC Route
Как настроить класс-маршрутизатор и файл htaccess для пагинации,чтобы только главная принимала параметр /?page=1 и работали остальные...

Php,MVC и htaccess
Добрый вечер уважаемые форумчане уже задавал этот вопрос ,подскажите пожалуйста как можно реализовать авторизацию .htaccess , если сайт...

MVC ajax php
Не могу понять, как мне ajax(ом) подгружать данные при подходе MVC?Куда отправлять запрос? Ajax разместил во вьюхе class...

Php,MVC и htaccess
Добрый вечер уважаемые форумчане ,подскажите пожалуйста как можно реализовать авторизацию .htaccess , если сайт сделан на MVC , то есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru