@dev400

Вывод тайтла (PHP, MVC)?

Есть класс view:
<?php
namespace Frontend\Core;

class View
{
	/**
	 * @var string the page title
	 */
	public $title;

	/**
	 * @param $view 
	 * @param null $model
	 */
	public function render($view, $model = null)
	{
		require_once 'frontend/views/layouts/main.php';
		
	}
}


В методе
render()
Подключается общий шаблон сайта. В него передаются 2 аргумента(модель, если она есть, и конкретное представление)
В свойстве $title лежит тайтл.

Вот пример представления:
<?php

/* @var $this Frontend\Core\View */
$this->title = "Новости";
?>
<h1>Все новости:</h1>
<pre><?php var_dump($model) ?></pre>


Главный шаблон:
<!DOCTYPE html>
<html lang="en">

"тут html" 

	<title><?= $this->title ?></title>

"опять html" 

<div class="row">
				<?php require_once 'frontend/views/'.$view; ?>
			</div><!--/row-->


Надеюсь суть работы системы понятна.
Вопрос: Как из конкретного представления переопределить св-во $title?
  • Вопрос задан
  • 340 просмотров
Решения вопроса 1
@mistergonza
PHP6 evangelist
Представление должно подключать главный шаблон, а не наоборот. Посмотрите как это делает twig, или как это сделано в Zend Framework 2.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
trevoga_su
@trevoga_su
> В него передаются 2 аргумента(модель, если она есть, и конкретное представление)
О_о
а если для вида нужно две модели? это точно МВС?

class contoller {
  action do() {
      $this->getView()->title = 'hahah';
      $this->getView()->model1 = $model1;
      $this->getView()->model2 = $model2;
  }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы