Comment faire une jointure en MVC

Par yassinemd3, il y a 6 ans


Bonjour,

J'ai suivi ce tuto :

Tutoriel vidéo PHP : Développer un site de A a Z

moi je que je veux de faire une jointure entre la table post et la table catégorié mais dans toute la formation il n y'a aucune jointure c'est quelqu'un peut maider a resoudre ce probleme

PostsController

class PostsController extends Controller{ function view($id,$slug){ $this->loadModel('Post'); $condition = array('id' => $id, 'type_post' => 'post', 'online' => 1); $d['post']=$this->Post->findFirst(array( 'fields' => 'id,content,slug,name_post', 'conditions'=> $condition )); if(empty($d['post'])){ $this->e404('Page introuvable'); } if($slug != $d['post']->slug) { $this->redirect("posts/view/id:$id/slug:".$d['post']->slug,301); } $this->set($d); }

Model

public function find($req){ $sql = 'SELECT '; if(isset($req['fields'])){ if(is_array($req['fields'])){ $sql .= implode(', ', $req['fields']); }else{ $sql .= $req['fields']; } }else{ $sql .= '*'; } $sql .= ' FROM '.$this->table.' as '.get_class($this).' '; if(isset($req['conditions'])){ $sql .= 'WHERE '; if(!is_array($req['conditions'])){ $sql .= $req['conditions']; }else{ $cond = array(); foreach ($req['conditions'] as $k => $v) { if(!is_numeric($v)){ $v=''.$this->db->quote($v).''; //$v="$v"; } $cond[] = "$k=$v"; } $sql .= implode(' AND ', $cond); } } if(isset($req['limit'])){ $sql .= ' LIMIT ' .$req['limit']; } $pre = $this->db->prepare($sql); $pre->execute(); return $pre->fetchAll(PDO::FETCH_OBJ); } public function findFirst($req){ return current($this->find($req)); }

1 réponse

Defy, il y a 6 ans

Un jointure c'est en sql, ce n'est en rien lié a un pattern comme le MVC ;-)