CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 26-09-2016 12:34:36

nvalyfofana
Eclair café
Date d'inscription: 15-06-2016
Messages: 43

Test de valeur

Bonjour, j'aimerais tester deux valeurs avant insertion dans la BDD.

Voici mon controller:

public function add()
    {
        $mission = $this->Missions->newEntity();
   //     $vehicule = $this->Vehicules->newEntity();
        if ($this->request->is('post')) {
            $mission = ($this->Missions->patchEntity($mission, $this->request->data));

            if ($this->Missions->save($mission)) {
                $this->Flash->success(__('The mission has been saved.'));
                return $this->redirect(['action' => 'index']);
            } else {
                $this->Flash->error(__('The mission could not be saved. Please, try again.'));
            }
        }
        }


        $vehicule = $this->Missions->Vehicules
            ->find()
            ->where(['id' => $this->request->data['vehicules_id']])
            ->first();

        $miss = $this->Missions
            ->find()
            ->where(['vehicules_id' => $this->request->data['vehicules_id']])
            ->order(['created' => 'DESC'])
            ->first();

        $missd = $this->Missions
            ->find()
            ->where(['vehicules_id' => $this->request->data['vehicules_id']])
            ->order(['created' => 'DESC'])
            ->first();


        $personnels = $this->Missions->Personnels->find('list', ['limit' => 2000]);
        $chauffeurs = $this->Missions->Chauffeurs->find('list', ['limit' => 2000]);
       
        $typemissions = $this->Missions->Typemissions->find('list', ['limit' => 2000]);
        $communes = $this->Missions->Communes->find('list', ['limit' => 2000]);
        $this->set(compact('mission', 'vehicule', 'personnels', 'typemissions', 'communes', 'chauffeurs'));
        $this->set(compact('mission', 'miss'));
        $this->set(compact('mission', 'missd'));
        $this->set('_serialize', ['mission']);


        $query = $this->Missions->find('all', ['conditions'  => ['vehicules_id' => '1'] ]);
        $number = $query->count();

    }


Voici mon add.ctp:


<?php

use Cake\I18n\Date;
use Cake\I18n\Time;
$this->layout = "auto";

$this->Html->css([
    "/assets/plugins/jquery-ui/smoothness/jquery-ui.min",
    "/assets/plugins/datepicker/css/datepicker",
    "/assets/plugins/daterangepicker/css/daterangepicker-bs3",
    "/assets/plugins/timepicker/css/timepicker",
    "/assets/plugins/datetimepicker/css/datetimepicker.min",
    "/assets/plugins/colorpicker/css/bootstrap-colorpicker.min",
    "/assets/plugins/ios-switch/css/switch",
    "/assets/plugins/tagsinput/css/bootstrap-tagsinput",
    "/assets/plugins/select2/select2",
    "/assets/plugins/typeahead/css/typeahead",
    "/assets/plugins/multi-select/css/multi-select"
], ["block" => true]);
$this->Html->script([
    "/assets/plugins/jquery-ui/smoothness/jquery-ui.min",
    "/assets/plugins/datepicker/js/datepicker",
    "/assets/plugins/daterangepicker/js/moment.min",
    "/assets/plugins/daterangepicker/js/daterangepicker",
    "/assets/plugins/timepicker/js/timepicker.min",
    "/assets/plugins/datetimepicker/js/datetimepicker.min",
    "/assets/plugins/datetimepicker/js/locales/bootstrap-datetimepicker.fr",
    "/assets/plugins/colorpicker/js/bootstrap-colorpicker.min",
    "/assets/plugins/tagsinput/js/bootstrap-tagsinput.min",
    "/assets/plugins/select2/select2.min",
    "/assets/plugins/typeahead/typeahead.bundle",
    "/assets/plugins/typeahead/handlebars.min",
    "/assets/plugins/multi-select/js/jquery.multi-select",
    "/assets/plugins/multi-select/js/jquery.quicksearch"
], ["block" => true]);

$date = new Date($missd['dateheureretour']);

?>

<section class="box ">
    <header class="panel_header">
        <h2 class="title pull-left">Ajout de mission de l'intérieure</h2>
        <div class="actions panel_actions pull-right">
            <i class="box_toggle fa fa-chevron-down"></i>
            <i class="box_setting fa fa-cog" data-toggle="modal" href="#section-settings"></i>
            <i class="box_close fa fa-times"></i>
        </div>
    </header>
    <div class="content-body">    <div class="row">
       
            <?= $this->Form->create($mission) ?>
            <div class="col-md-6 col-sm-6 col-xs-6">

                <div class="form-group">
                    <label class="form-label">Immatriculation * </label>
                    <?= $this->Form->select("vehicules_id", [$vehicule['id'] => $vehicule['name']], $options = ['empty'=> true]) ?>
                </div>
               
                <div class="form-group">
                    <label class="form-label">Demandeur *<span  style="color: red">(obligation)</span></label>
                    <?= $this->Form->select("personnels_id", $personnels, $options = ['empty' => true]) ?>
                </div>

                <div class="form-group">
                    <label class="form-label">Chauffeur *<span  style="color: red">(obligation)</span></label>
                    <?= $this->Form->select("chauffeurs_id", $chauffeurs, $options = ['empty'=> true], ["class" => "form-control", 'required' => true]) ?>
                </div>
               
                <div class="form-group">
                    <label class="form-label">Type mission</label>
                    <?= $this->Form->select("typemissions_id", $typemissions->where(['id' => '2'])) ?>
                </div>

               
                <div class="form-group">
                    <div class="controls">
                        <?= $this->Form->input('name', ["class" => "form-control", 'required' => true, 'label' => 'N° ordre (pour les missions intérieures)']) ?>
                    </div>
                </div>
               
            </div>
           
           <div class="col-md-4 col-sm-4 col-xs-4">
    <label class="form-label" for="field-1"> Date et heure de sortie (Dernière date: <?= $date->format('Y-m-d H:i:s'); ?>) </label>
                <div class="form-group">
                    <div class="input-group date form_datetime" defautDate: "+1w" data-date-format="MM dd yyyy - HH:ii:s" data-link-field="dtpick_1">
                        <?= $this->Form->text('dateheuresortie', ["class" => "form-control"]) ?>
                        <span class="input-group-addon"><span class="fa fa-times"></span></span>
                        <span class="input-group-addon"><span class="fa fa-calendar"></span></span>
                    </div>
                    <input type="hidden" id="dtpick_1" value="" />
                </div>
               
                <div class="form-group">
                    <div class="controls">
                        <?= $this->Form->input('kilometragesortie', ["class" => "form-control" , 'required' => true, 'label' => __('Kilométrage de sortie (Dernière mission: {0})', $this->Number->format($miss['kilometrageretour'])), 'min' => $miss['kilometrageretour']]) ?>
                    </div>
                </div>

                <label class="form-label" for="field-2">Date et heure prevue de retour</label>
                <div class="form-group">
                    <div class="input-group date form_datetime" defautDate: "+1w" data-date-format="MM dd yyyy - HH:ii p" data-link-field="dtpick_2">
                        <?= $this->Form->text('dateprevueretour', ["class" => "form-control", 'required' => true]) ?>
                        <span class="input-group-addon"><span class="fa fa-times"></span></span>
                        <span class="input-group-addon"><span class="fa fa-calendar"></span></span>
                    </div>
                    <input type="hidden" id="dtpick_2" value="" />
                </div>

                 <div class="form-group">
                    <div class="controls">
                        <?= $this->Form->input('numordremission', ["class" => "form-control", 'label' => 'Libellé de la mission', 'required' => true]) ?>
                    </div>
                </div>

                <div class="form-group">
                    <label class="form-label">Destination *<span  style="color: red">(obligation)</span></label>
                    <?= $this->Form->select("communes_id", $communes, $options = ['empty'=> true]) ?>
                </div>

            <!--    <label class="form-label" for="field-2">Date et heure de retour</label>
                <div class="form-group">
                    <div class="input-group date form_datetime" data-date="2016-06-14T05:35:07Z" data-date-format="MM dd yyyy - HH:ii p" data-link-field="dtpick_2">
                        <?= $this->Form->text('dateheureretour', ["class" => "form-control"]) ?>
                        <span class="input-group-addon"><span class="fa fa-times"></span></span>
                        <span class="input-group-addon"><span class="fa fa-calendar"></span></span>
                    </div>
                    <input type="hidden" id="dtpick_2" value="" />
                </div>
               
                <div class="form-group">
                    <div class="controls">
                        <?= $this->Form->input('kilometrageretour', ["class" => "form-control", 'label' => 'Kilométrage de retour']) ?>
                    </div>
                </div>
              --> 
               
              <!--  <label class="form-label" for="field-2">Statut</label>
                <div class="form-group">
                    <?=
                    $this->Form->checkbox('statut', ['value' => 1])
                    ?>
                </div>   -->
                <?= $test = $this->Form->input('statut', array('type' => 'hidden'), ['label' => __('(statut: {0})', $this->Number->format($miss['statut']))]) ?>

                <?= $test_vehicule = $this->Form->input('vehicules_id', array('type' => 'hidden'), ['label' => __('(id vehicule: {0})', $this->Number->format($miss['vehicules_id']))]) ?>
            </div>

        </div>
            <?= $this->Form->button(__('Valider')) ?>
            <?= $this->Form->end() ?>
    </div>
</section>


En fait, j'ai une BDD pour les enregistrements de missions, lorsqu'un vehicule sort de l'entreprise et qu'il n'est pas encore revenu, son statut est à 0, s'il revient dans l'entreprise, son statut est à 1, donc je veux empecher qu'on puisse enregistrer de nouveau une mission dont le vehicule n'est pas encore revenu dans l'entreprise.
Pour ce faire, je recupere en hidden comme suit:

<?= $test = $this->Form->input('statut', array('type' => 'hidden'), ['label' => __('(statut: {0})', $this->Number->format($miss['statut']))]) ?>

                <?= $test_vehicule = $this->Form->input('vehicules_id', array('type' => 'hidden'), ['label' => __('(id vehicule: {0})', $this->Number->format($miss['vehicules_id']))]) ?>
            </div>


le statut et le véhicule afin que je puisse comparer le statut du véhicule sélectionner et son statut dans la BDD.
Mon problème, c'est comment les comparer dans mon controller avant insertion.

Merci d'avance

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr