2010-10-14 19 views
0

J'essaie de créer des liens URL pour le blog de mon portfolio. Donc, je voudrais obtenir des liens quelque chose comme site/journal/post/{title}filtrez une chaîne pour supprimer les caractères non autorisés afin de composer une URL dans CodeIgniter

De toute évidence, le journal est mon contrôleur, mais disons que mon titre serait «mysite.com goes live! Je voudrais avoir une url valide comme site/journal/post/mysitecom-goes-live où tous les caractères non autorisés sont supprimés.

Comment transformer 'mysite.com goes live!' à 'site/revue/post/mysitecom-va-live' dans CodeIgniter sur la base des caractères dans $ config [ 'permitted_uri_chars']

Répondre

4

utiliser l'assistant url

$this->load->helper('url'); 

$blog_slug = url_title('Mysite.com Goes live!'); 

echo $blog_slug //mysitecom-site-goes-live 
// might differ slightly, but it'll do what you want. 

pour générer des liens url convivial.

Stockez cette valeur dans un champ de la table de votre blog (url_title/url_slug).

faire fonction:

class Journal extends controller 
{ 
    //make your index/constructor etc 

    function view($post) 
    { 
    $this->blog_model->get_post($post); 
    // etc - your model returns the correct post, 
    // then process that data and pass it to your view 
    } 
} 

votre blog_model a une get_post méthode qui utilise

$this->db->where('url_title', $post);

espoir de CI qui est logique.

puis lorsque vous accédez à la page:

site.com/journal/view/mysite-goes-live

la fonction ramasser « monsite-va-live » et le transmettre à la fonction vue(), qui à son tour regarde le blog approprié entrée dans la base de données.

+0

merci beaucoup, il n'y avait pas besoin de tout expliquer si bien pensé (même si j'apprécie beaucoup l'effort) – Ayrton

+0

bonne réponse, très complet – fullstacklife