2017-10-04 2 views
-1

Je crée un serveur REST et souhaite créer une URL comme siRoutage REST Codeigniter

DELETE /companies/3/employees/45 

Le critère d'évaluation devrait supprimer employé 45, qui appartient à la société 3.

Comment exactement Irais-je à propos de la création d'une URL ci-dessus en utilisant codeigniter.

+0

Qu'avez-vous essayé jusqu'à présent? – mega6382

+0

Je n'ai pas parce que je ne savais pas par où commencer, j'ai essayé endpoint aimé/companies/3 ou/companies/abc/3 qui est simple mais avec/entreprises/3/employés/45 je ne sais pas où commencer à écrire mon code. –

Répondre

1

les opérations suivantes:

Dans votre routes.php ajouter une nouvelle route:

$route['companies/(:num)/employees/(:num)'] = 'companies/employees/$1/$2'; 

companies est le controller et employees est le action.

et dans votre controller, écrire quelque chose comme une action:

//Use some kind of input validations for the Ids 
public function employees($companyId = 0, $employeeId = 0) 
{ 
    if(strtolower($_SERVER['REQUEST_METHOD']) == 'delete') 
    { 
     //delete query here 
    } 
} 

Il utilise le routage de CI pour obtenir params, et utilise superglobale $_SERVER pour déterminer si la méthode de requête utilisée pour l'appel est DELETE.

+0

Il n'était pas nécessaire d'ajouter la clause if car le routage verbe http est possible dans la classe routes.php elle-même et peut être fait comme spécifié par @elddenmedio. –

1

vous devez d'abord faire une application de repos like this link

Ensuite, vous pouvez faire une route comme

$route["companies"]["delete"] = 'company/delete'; 

Dans votre entreprise contrôleur

function delete () { 
    foreach($this->input->post() as $item => $value){ 
     ${$item} = $value;//making variables $employee_id, $company_id 
    } 
    //logic to delete 
} 

Vous devez envoyer cette information par la poste ou faire presque le même l'envoyer pour obtenir

+0

Vous avez raison, mais je dois donner @ mega6382 les points depuis que cette réponse est venu en premier. –