Bonjour j'ai télécharger directement le résultat final du tutoriel "Développer un site avec CakePHP" , j'ai regarder un peu les dossiers Controller, Model et View je me suis inspirer de la page "categories" j'ai repris les fichiers "CategoriesController.php" & "Category.php" & "admin_index.ctp" "admin_edit.ctp" et adapter pour ajouter ma nouvelle page "serveurs" (page pour gérer des serveurs minecraft) donc j'ai tout adapter:
/Controller/ServeursController.php
<?php
class ServeursController extends AppController{
function sidebar(){
return $this->Server->find('all');
}
function admin_index(){
$d'serveurs'] = $this->Server->find('all');
$this->set($d);
}
function admin_edit($id = null){
if($this->request->is('post') || $this->request->is('put')){
$this->Server->save($this->request->data);
$this->Session->setFlash("La catégorie a bien été sauvegardée","notif");
$this->redirect(array('action'=>'index'));
}elseif($id){
$this->Server->id = $id;
$this->request->data = $this->Server->read();
}
}
function admin_delete($id){
$this->Session->setFlash('La catégorie a bien été supprimée','notif');
$this->Server->delete($id);
$this->redirect($this->referer());
}
}
/Model/Server.php
<?php
class Server extends AppModel{
public function afterFind($data){
foreach($data as $k=>$d){
if(isset($d'Server']) && isset($d'Server']'id'])){
$d'Server']'link'] = array(
'controller' => 'Serveurs',
'action' => 'server',
);
}
$data$k] = $d;
}
return $data;
}
public function beforeSave(){
if(empty($this->data'Server']'slug']) && isset($this->data'Server']'slug']) && !empty($this->data'Server']'name']))
$this->data'Server']'slug'] = strtolower(Inflector::slug($this->data'Server']'name'],'-'));
return true;
}
}
/view/Servers/admin_index.ctp
<div class="page-header">
<h1>Gestion des serveurs</h1>
</div>
<p><?php echo $this->Html->link("Ajouter un serveur",array('action'=>'edit'),array('class'=>'btn primary')); ?></p>
<table>
<tr>
<th>ID</th>
<th>Nom du client</th>
<th>Nom du serveur</th>
<th>Nombre de slot</th>
<th>Actions</th>
</tr>
<?php foreach($serveurs as $k=>$v): $v = current($v); ?>
<tr>
<td><?php echo $v'id']; ?></td>
<td><?php echo $v'users_client']; ?></td>
<td><?php echo $v'name']; ?></td>
<td><?php echo $v'slot']; ?></td>
<td>
<?php echo $this->Html->link("Editer",array('action'=>'edit',$v'id'])); ?> -
<?php echo $this->Html->link("Supprimer",array('action'=>'delete',$v'id']),null,'Voulez vous vraiment supprimer ce serveur'); ?>
</td>
</tr>
<?php endforeach; ?>
</table>
/view/Servers/admin_edit.ctp
<div class="page-header">
<h1>Editer un serveur</h1>
</div>
<?php echo $this->Form->create('Server'); ?>
<?php echo $this->Form->input('users_client',array('label'=>'Client')); ?>
<?php echo $this->Form->input('name',array('label'=>"Nom du serveur")); ?>
<?php echo $this->Form->input('slot',array('label'=>"Nombre de slot")); ?>
<?php echo $this->Form->input('id'); ?>
<?php echo $this->Form->end('Envoyer'); ?>
j'ai créer une nouvelle table nommé users: avec les colonnes:name, slot, users_client, id
j'ai ajouter le lien sur la sidebar mais quand j'essaye d'y accéder sa m'affiche cette erreur:
Fatal error: Call to a member function find() on a non-object in /var/www/test/app/Controller/ServeursController.php on line 10
Que faire ? merci d'avance :)
Toujours la même erreur "Fatal error: Call to a member function find() on a non-object in /var/www/test/app/Controller/ServeursController.php on line 10" bizarre ...
Euh $this->Serveur plutôt
Sinon dans ton controlelr précise que tu veux utilise le modèle Server en faisant
public $uses = array('Server');