В классе нам нужно создать собственную инфраструктуру mvc в php. У меня есть метод, который возвращает представление в двух формах, первый показывает его, а второй - переменной, подобной содержимому. Проблема заключается в том, что в методе load_view для второй формы я использовал return require_once
, но это делает код html и everyting get показан, когда я не хочу его показывать.как вернуть код php/html в переменную
вот load_view
метод:
function load_view($view, $data, $async){
if (is_array($data)){
foreach ($data as $key => $value) {
$$key = $value;
}
}
if ($async) {
return $tmp = require_once('aplication/view/'.$view.'.php');
} else {
echo require_once('aplication/view/'.$view.'.php');
}
}
контроллер, который реализует метод:
class user extends core_controller {
function __construct() {
$this->data['css'] = array('public/bootstrap/css/bootstrap.min.css',
'public/css/login.css');
}
function action(){
$this->data['content'] = $this->load_view('loginForm', array(), true);
$this->load_view('templates/template', $this->data);
}
}
мнения: первая: template
<div class="container">
<?php echo $content; ?>
</div>
второй: loginForm
<div class="row vertical-offset-100">
<div class="col-md-4 col-md-offset-4">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Please sign in</h3>
</div>
<div class="panel-body">
<form method="post" action="login/enter" accept-charset="UTF-8" role="form">
<fieldset>
<div class="form-group">
<input class="form-control" placeholder="Username" name="username" type="text" required>
</div>
<div class="form-group">
<input class="form-control" placeholder="Password" name="password" type="password" value="" required>
</div>
<a href="#" class="btn btn-info btn-block" role="button">Registrarme</a>
<input class="btn btn-lg btn-success btn-block" type="submit" value="Login">
</fieldset>
</form>
</div>
</div>
</div>
</div>
Вы не просили вопрос – Zach
извините, я его отредактировал –
Почему 'echo require_once ('' ...? – Mikolaj