Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

diogopuskas

Kohana, problemazito

Mensagens Recomendadas

diogopuskas

tenho aqui o meu controller,

    <?php
class template_Controller extends Controller {

    function index()
    {
        // Load the view as an object
        $view = new View('template');

        // Adding variables to the object that will be displayed in the view
        $view->title   = "Welcome to Kohana !";
        $view->heading = "My Heading";
        $view->content = "My content here.";

        // Render the view
        $view->render(TRUE);
    }
}

Tenho aqui a minha view,

<html>
    <head>
        <title><?php echo $title;?></title>
    </head>
    <body>
        <h1><?php echo $heading;?></h1>
        <p><?php echo $content;?></p>
    </body>
</html>

já li e re li a parte da documentação nesta parte, mas só que não esta a funcionar, não entendo porque :s

Fatal error: Cannot redeclare class template_Controller in C:\xampp\htdocs\myfirstkohana\application\controllers\hello.php  on line 17

Obrigado :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
scorch

Mostra o conteúdodo ficheiro hello.php

É lá que está o erro. :thumbsup:


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diogopuskas

há esqueci me de referir, o controller é o hello.php e a view é o template.php

edit:já agora, a linha 17 é o ultimo } , não consigo perceber porque :s

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
scorch

Tens de fechar as tags PHP.

   <?php
        class template_Controller extends Controller {

    function index()
    {
        // Load the view as an object
        $view = new View('template');

        // Adding variables to the object that will be displayed in the view
        $view->title   = "Welcome to Kohana !";
        $view->heading = "My Heading";
        $view->content = "My content here.";

        // Render the view
        $view->render(TRUE);
    }
}
?>

EDIT: E o nome do ficheiro tem de ser o mesmo da classe.

http://docs.kohanaphp.com/general/controllers#controller_naming_and_anatomy


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
scorch

Tenta renomear a classe para Hello_Controller.


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diogopuskas

Resvolvido  :wallbash:

fui dar uma grande volta .. estava a renomear os nomes todos e depois abri a view em vez do controller .. enfim, obrigado :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diogopuskas

Desculpem, mas isto de estar a aprender tem as suas dúvidas  :-[

http://kohanaphp.com/tutorials/page

Estou a tentar fazer esse tutorial, mas chego ali a uma parte que não percebo uma coisa,

Next we will set up the view for displaying our main content:

application/views/page/index.php

<?=$content->content?>

Wasn't that easy? :thumbsup:

Esta parte é que não estou a perceber o porque, se alguém me conseguisse explica agradecia :) Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diogopuskas

Bem, estou a tentar fazer aquele toturial em cima, mas esta me a dar uns errozitos, supostamente estou a fazer aquilo bem, cria se o controller sem nenhuma função, depois cria se as views(header,content e o footer) e uma view para chamar os 3 .. depois é adicionado a função index ao controller que indica o caminho à view e a funcion contruct que pelo que percebi é por causa das sub paginas que vão ser criadas(no controller que não tinha nenhuma função). depois temos o index.php que não percebi bem uma coisa, porque é que tem o caminho de page/index.php , bem cria se a pagina "page" dentro das views e depois cria se a pagina que vai ser preenchida pelo content. Penso que não me esqueci de nada.

http://img704.imageshack.us/img704/4613/qqqqel.jpg

é que basicamente, o problema está aqui,

<?php

class  Page_Controller extends  Controller {
        
function  index()
{
        $this->layout->header = $this->load->view("header", array_merge($this->header, array("title" => $page->title)));
        $this->layout->content = $this->load->view("page/index", array("content" => ""));
        $this->layout->footer = $this->load->view("footer.php");
        $this->layout->render(TRUE);

if ($page = $this->page->get_page($this->location))
        {
                if (!$this->input->get("no_header"))
                        $this->layout->header = $this->load->view("header", array_merge($this->header, array("title" => "radd-cpa.org :: " . $page->title)));
                else
                        $this->layout->header = "";
                $this->layout->content = $this->load->view("page/index", array("page" => $page));

                $this->layout->render(TRUE);
        }
        else
                Kohana::show_404();

}

function  __construct()
{
        parent::__construct();

        $this->load->model("page");
        $this->header = array("menu" => $this->page->get_menu(), "title" => "example.com :: Home");

        /* Get the page (page or folder/page) */
        $base = ($this->uri->segment(2) == "edit") ? 2 : 0;

        if ($this->uri->segment((1+$base)) !== false && $this->uri->segment((2+$base)) !== false) // This is a sub page
                $this->location = array("parent" => $this->uri->segment((1+$base)), "child" => $this->uri->segment((2+$base)));
        else if ($this->uri->segment((1+$base)) !== false && $this->uri->segment((2+$base)) === false) // This is a main page
                $this->location = array("parent" => $this->uri->segment((1+$base)));
        else // This is the home page
                $this->location = array("parent" => "index");

        $this->layout = $this->load->view("layout");

        $this->layout->footer = ($this->input->get("no_header")) ? "" : $this->load->view("footer");
}

}

?>

Alguma sugestão ? Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

O tutorial que estás a usar é antigo e já não se usa.

O erro que te está a dar é na função load, que está classificada como deprecated na documentação oficial a partir da versão 2.1

Para iniciares um model, faz assim :

$this->page = new Page_Model;

edit: se precisares de ajuda, não hesites em cá vir, que deixa-me contente ver a malta a aventurar-se nessa framework :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diogopuskas

Obrigado :thumbsup: e obrigado pela dica, já agora yoda, algum tutorial mais recente ? é que no site do kohana só vi mesmo este e achei 'engraçado'

Os models é que estão um bocadinho verdinhos para mim, de resto já faço algumas coisinhas.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diogopuskas

Basicamente, o que vou ter de fazer é um site para uma empresa que crie graficos e vai buscar dados à bd, portanto queria alguma coisa relativamente ligado a isso ou parecido

relativamente aos graficos,vou usar esta library, http://pchart.sourceforge.net/ pelo que vi é bastante boa, se calhar a melhor do php.

edit: e relativamente à licença do GPL da library, falei com os monitores, eles disseram que podia, mas não foi com muito boa cara lol.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

A google também tem uma API boa para gráficos, bastante completa : http://code.google.com/intl/pt-PT/apis/charttools/

Tem a vantagem de não puxar pela máquina em que tiveres o script.

Quanto ao Kohana, é fácil de aprender, e depois de se aprender é sempre a andar :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diogopuskas

Olha, bem visto, nem sabia que o google tinha, eu até a usava, mas os meus monitores querem uma coisa, digamos, livre :wallbash:

e relativamente ao tutorial, encontras te alguma coisa? é que quanto mais depressa for, melhor! :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diogopuskas

Vá por outras palavras, comerciável lol mas como a outra tem a licença GPL, fica se só por usável lol

Mas com um tutorial, fica se sempre a perceber melhor como funciona, mas eu vou vendo isso, mas se encontrares alguma coisa relevante para isto que estou a fazer posta aqui sff :)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diogopuskas

Obrigado, vou ver mais algumas coisas então, se tiver alguma duvidazita venho aqui expor.

já agora, achas que continue o exemplo que estava a fazer? ou parto para outras coisas na documentação ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diogopuskas

<?php
defined('SYSPATH') OR die('No direct access allowed.');
//nome do arquivo da página principal, sem a extensão
$config["_default" rel="nofollow" target="_blank"> = 'capa'];
?>

está me a dar este erro, não sei porque ...

Parse error: syntax error, unexpected '[', expecting ')' in C:\xampp\htdocs\myfirstkohana\application\config\routes.php on line 5

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.