Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, tenho o seguinte:
CONTROLADOR
public function indexAction()
{
$this->view->title = "Carros";
$this->view->headTitle($this->view->title);
$carros = new Application_Model_Carros();
$this->view->carros = $carros->getCarros();
}
public function editAction()
{
$this->view->title = "Editar";
$this->view->headTitle($this->view->title);
$carros = new Application_Model_Carros();
if($this->getRequest()->isPost())
{
$formData = $this->getRequest()->getPost();
$carros->updateCarro(
$formData['idcarro'],
$formData['modelo']
);
$this->_helper->redirector("index");
}
else
{
$idcarro = $this->_request->getParam("idcarro");
$this->view->carro = $carros->getCarro($idcarro);
}
}
LAYOUT
<!-- contentSite -->
<div id="contentSite">
<?php
echo $this->layout()->content;
?>
</div>Valeu!
Pois é, to bastante confuso ainda com essa coisa de layout.
>
// qual a função desta linha?
$this->view->title = "Carros";
Eu uso isso no layout, não postei ele todo para não deixar o post muito extenso
Quando você diz que só aparece no index, o que acontece com os outros? Aparecem mas não aparecem no layout? Ou não aparecem? Como está acessando os outros actions? Testou com outro controller? Tá parecendo problema com o URL Rewrite.
Então, se eu acesso
http://localhost/matrizveiculos/public/carros, aparece a view dentro do meu layout normal
Se eu acesso
http://localhost/matrizveiculos/public/carros/edit, só aparece o formulário para edição, não aparece o meu layout
Se acesso
http://localhost/matrizveiculos/public/, aparece meu layout normal também
Para falar a verdade estou perdido, ja procurei bastante coisa sobre, mas não consigo achar nada especifico sobre layouts (salvo a documentação oficial)
Muito estranho isto... Posta o application.ini, o bootstrap e o layout.phtml. Vamos ver se tem alguma coisa errada.
Carlos Eduardo
Então, eu refiz o projeto, e funcionou, realmente nao sei o que foi, mas vai la, os arquivos que nao funcionam
Lembrando que nao mexi no boot, ele foi criado pelo "zf create project" e o layout foi habilitado com "zf enable layout"
boot:
<?php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
->run();
ini:
[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
phpSettings.date.timezone = "America/Sao_Paulo"
resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password = 123mudar
resources.db.params.dbname = matrizveiculos
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
layout:
<?php
$this->headMeta()->appendHttpEquiv("Content-Type", "text/html;charset=utf-8");
$this->headTitle()->setSeparator(" - ");
$this->headTitle("Matriz Veiculos");
echo $this->doctype();
?>
<html xmlns="[http://www.w3.org/1999/xhtml"](http://www.w3.org/1999/xhtml) xml:lang="pt-br" lang="pt-br">
<html>
<head>
<?php
echo $this->headMeta();
echo $this->headTitle();
echo $this->headLink()->prependStylesheet($this->baseUrl() . "/css/style.css");
echo $this->headLink()->prependStylesheet($this->baseUrl() . "/css/smoothness/jquery-ui-1.7.2.custom.css");
echo $this->headLink()->prependStylesheet($this->baseUrl() . "/css/tablesorter/style.css");
echo $this->headLink()->prependStylesheet($this->baseUrl() . "/css/jcrop/jquery.Jcrop.css");
?>
<script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/js/jquery-ui-1.7.2.custom.min.js"></script>
<script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/js/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/js/tools.tooltip-1.1.3.min.js"></script>
<script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/js/tools.tooltip.slide-1.0.0.min.js"></script>
<script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/js/jquery.validate.min.js"></script>
<script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/js/jquery.appinit.min.js"></script>
<script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/js/jquery.filestyle.js"></script>
<script type="text/javascript" src="<?php echo $this->baseUrl(); ?>/js/jquery.Jcrop.min.js"></script>
</head>
<body>
<!-- mainSite -->
<div id="mainSite">
<!-- bannerSite -->
<div id="bannerSite">
</div>
<!-- middleSite -->
<div id="middleSite">
<!-- menuSite -->
<div id="menuSite">
<?php
// Lista as marcas
$model = new Application_Model_Marcas();
$marcas = $model->fetchAll(NULL, "descricao ASC");
echo "
<ul>";
echo "<li class=\"title\">Marcas</li>";
foreach ($marcas as $marca)
{
echo "<li>" . $this->escape($marca->descricao) . "</li>";
}
echo "</ul>";
// Lista as modelos
$model = new Application_Model_Modelos(NULL, "descricao ASC");
$modelos = $model->fetchAll();
echo "
<ul>";
echo "<li class=\"title\">Modelos</li>";
foreach ($modelos as $modelo)
{
echo "<li>" . $this->escape($modelo->descricao) . "</li>";
}
echo "</ul>";
?>
</div>
<!-- contentSite -->
<div id="contentSite">
<?php
echo $this->layout()->content;
?>
</div>
</div>
<!-- fooSite -->
<div style="clear:both"> </div>
<div id="fooSite"></div>
</div>
</body>
</html>
Bom, vamos começar pelo início...
Quando você diz que só aparece no index, o que acontece com os outros? Aparecem mas não aparecem no layout? Ou não aparecem? Como está acessando os outros actions? Testou com outro controller? Tá parecendo problema com o URL Rewrite.Carlos Eduardo