Notice: Trying to get property of non-object [FuelPHP]

Eléphanteau du PHP | 38 Messages

19 oct. 2016, 14:32

Bonjour,

Je bloque depuis 10h ce matin a apparemment un petit soucis.

Voilà l'erreur que j'ai: http://creatux.niloo.fr/public/blog/view/2
Voici la page qui me liste mes articles: http://creatux.niloo.fr/public/blog

J'utilise le framework FuelPHP, voici le controller qui pose soucis:
<?php

class Controller_Blog extends Controller_Template
{
    /**
     * Page D'index du blog
     *
     * @access  public
     * @return  Response
     */
    public function action_index()
    {
        $posts = Model_Post::find('all');
        $data = array('posts' => $posts);
        $this->template->title = 'Créatux : Blog';
        $this->template->content = View::forge('blog/index', $data, false);
    }


    /**
     * Page de vue d'un article
     *
     * @access  public
     * @return  Response
     */
    public function action_view($id)
    {
        $post = Model_Post::find('first', array(
            'where' => array(
                'id' => $id
            )
        ));
        $data = array('post' => $post);
        $this->template->title = $post->title;
        $this->template->content = View::forge('blog/view', $data, false);
    }
}
J'ai déjà essayer un Print_R sans succés, j'ai du coup voulu debug le print R dans un fichier mais il reste vide.
Ce que je trouve pas normal c'est que pour afficher les articles ça marche mais pour un non, ça veut donc dire que la communication avec ma base de donnée marche normalement...
Je tourne en rond mais je ne trouve pas le problème sachant en plus que j'ai suivis ce tutoriel:
https://youtu.be/B0ZG3Mhzml4?t=2169
On peut remarquer que le code est identique.
J'utilise PHP7, j'ai aussi tenter de basculer sur PHP5.6 même soucis.

Voici également mon fichier de route qui me semble correcte:
<?php
return array(
	'_root_'  => 'site/index',  // The default route
	'_404_'   => 'welcome/404',    // The main 404 route
	'contact' => 'site/contact',
    'blog'    => 'blog/index',
    'blog/(:any)'  => 'blog/view/$1',
	
	'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),
);
Soit je suis très con soit j'attribue la palme a celui qui me trouve le soucis, car la je vois pas...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 oct. 2016, 09:00

bonjour,

sans plus d'info, genre le message d'erreur complet on ne peut pas t'aider.
le message que tu indiques est du au fait que tu utilises une syantaxe objet sur quelque chose qui n'est pas une objet ($toto ='tata'; $toto->propriete => boom).

ton premier lien indique bien une erreur mais sur une variable qui n'existe pas, dans le peu de code indiqué effectivement $titre n'existe pas.

bref la on ne peux pas t'aider plus qu'en t'expliquant un message d'erreur que tu as surement déjà compris.

@+
Il en faut peu pour être heureux ......