Salut j'ai deux tables enseignement et cycle avec comme relation( enseignement hasmany cycle et cycle belongsto enseignement).
dans mon model Enseignement, j'ai ceci:
<?php
class Enseignement extends AppModel
{
public $name = 'Enseignement';
public $hasMany = array(
'Cycle' => array(
'className' => 'Cycle',
'foreignKey' => 'enseignements_id',
'order' => 'Cycle.created DESC',
'fields' => 'nomcycle,description',
'dependance' => true
)
);
public $validate = array(
'specialite' => array(
'rule1'=>array('rule'=>'isUnique','message'=>'Cette specialite existe déja','last'=>false),
'rule2'=>array('rule'=>array('minLength',4),
'message'=>'Votre Pseudo doit contenir plus de 8 caractères'),
'required' => array('rule' => array('notEmpty'),'message'=>'Un pseudo est requis'))
);
}
?>
dans le model Cycle j'ai ceci:
<?php
class Cycle extends AppModel
{
public $name = 'Cycle';
public $belongsTo = array(
'Enseignement' => array(
'className' => 'Enseignement',
'foreignKey' => 'enseignements_id',
'fields' => 'specialite'
)
);
public $validate = array(
'nomcycle' => array(
'rule' => 'isUnique',
'allowEmpty' =>false,
'message' => 'Ce champ est déja utilisé'
),
'desciption' => array(
'rule' => array('allowEmpty' =>false),
'message' => 'Ce champ ne doit pas être vide'
)
);
}
?>
j'effectue bien mon crud avec le model enseignement par contre dans la vue pour ajouter un cycle j'ai ceci :
<?php echo $this->set('title_for_layout','Ajout d\' cycle'); ?>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">Enregistrement d'un cycle</h3>
</div>
<div class="panel-body">
<?php echo $this->Form->create('Cycle'); ?>
<div class="row">
<div class="col-lg-12">
<div class="col-lg-12">
<div class="col-lg-12 line-input">
<?php
echo $this->Form->input('enseignements_id', array('options' => $listenseignement));
$this->Form->unlockField('enseignements_id');
?>
</div>
<div class="col-lg-12 line-input">
<?php
echo $this->Form->input('nomcycle', array('label'=>'Nom du cycle ','type' => 'text','class'=>'form-control','placeholder'=>'Entrer le cycle','required'=>true));
?>
</div>
<div class="col-lg-10 line-input">
<?php
echo $this->Form->input('description', array('label'=>'Description ','type' => 'text','class'=>'form-control','placeholder'=>'Entrer la description','required'=>true));
?>
</div>
<div class="col-lg-10 line-input">
<p >
<?php
echo $this->Form->button(' Sauvegarder', array('type'=>'submit','class'=>'btn btn-primary btn-submit glyphicon glyphicon-ok'));
echo $this->Form->button(' Annuler', array('type'=>'reset','class'=>'btn btn-default btn-reset glyphicon glyphicon-refresh'));
echo $this->Form->end();
?>
</p>
</div>
</div>
<div class="col-lg-6">
<p class="navbar-text text-justify">
<h1>Information</h1>
Cette section vous permet de créer les types de poste.
Toute les opérations éffectuées dans votre gestion tiendrons compte de ce type.
comme exemple on pourait avoir type1 = 1 sequence, type2=2 sequence, etc....
</p>
</div>
</div>
</div>
</div>
<div class="panel-footer"></div>
</div>
et dans mon controller j'ai ceci pour enregistrer dans la base de donnée:
public function addcycle()
{
$this->layout = 'default';
$listenseignement = $this->Cycle->Enseignement->find('list', array('fields' => array('specialite')));
$this->set(compact('listenseignement'));
debug($listenseignement);
if($this->request->is('post'))
{
debug($validatePost);
$this->Cycle->create();
if($this->Cycle->save($this->request->data,true))
{
$this->Session->setFlash('Donner sauvegarder avec success','default',array('class'=>'alert alert-success'));
debug($this->request->data);
return $this->redirect(array('action' => 'index'));
}
$this->Session->setFlash('Erreur de sauvegarde, verifier vos informations','default',array('class'=>'alert alert-warning'));
}
}
dans mon appController j'ai ceci:
<?php
/**
* Application level Controller
*
* This file is application-wide controller file. You can put all
* application-wide controller-related methods here.
*
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP(tm) Project
* @package app.Controller
* @since CakePHP(tm) v 0.2.9
* @license http://www.opensource.org/licenses/mit-license.php MIT License
*/
App::uses('Controller', 'Controller');
class AppController extends Controller {
public $helpers = array('Html','Form','Session');
public $components = array('Session','Security' =>array(
'csrfUseOnce' => false
));
/*public function beforeFilter()
{
//debug($this->request);
}*/
}
lorsque je veus sauvegarder, cela me génère un trou noir je ne sais pas comment faire pour utiliser le componentsecurity dans une association belongsto