object(App\Model\Entity\Contenedore) {
'clave' => 'ADEC2334343',
'tamaño' => '20DC',
'status' => 'lleno',
'navieras_id' => (int) 1, //aqui esta la variable
'shipment' => '233434343',
'operacion' => 'Importacion',
'fecha_est_arribo' => object(Cake\I18n\FrozenTime) {
'time' => '2017-11-27T15:50:00+00:00',
'timezone' => 'UTC',
'fixedNowTime' => false
},
entonces el case seria:
public function add()
{
$contenedore = $this->Contenedores->newEntity();
if ($this->request->is('post')) {
$contenedore =
$this->Contenedores->patchEntity($contenedore,
$this->request->getData());
if ($contenedore['navieras_id']) {
if ($this->Contenedores->save($contenedore))
{
$this->Flash->success(__('The contenedore has been saved.'));
swicth($contenedore['navieras_id'])
{
case 0:
$this->redirect(['controller'=>'Complementos',
'action' => 'add']); //crea la vista uno que obviamente es un action
dentro del controlador
break;
case 1:
$this->redirect(['controller' =>
'controlador','action' => 'acccion_navieras_2']); //crea la vista dos
que obviamente es un action dentro del controlador
break;
//return
$this->redirect(['controller'=>'Complementos', 'action' => 'add']); }
$this->Flash->error(__('The contenedore could not be
saved. Please, try again.'));
}}
$navieras = $this->Contenedores->Navieras->find('list',
['keyField' => 'id','valueField'=>'razon_social']);
$this->set(compact('contenedore', 'navieras'));
$this->set('_serialize', ['contenedore']);
}
El 27 de noviembre de 2017, 09:58, Misael Morin<
[email protected]> escribió:
> ok mira ya lo hize y esto es lo que me arrojo solo que la instruccion es
> return debug($contenedore); y como puedes ver si es navieras id y es
> igual a 1pero no me funciona
>
> object(App\Model\Entity\Contenedore) {
>
> 'clave' => 'ADEC2334343',
> 'tamaño' => '20DC',
> 'status' => 'lleno',
> 'navieras_id' => (int) 1,
> 'shipment' => '233434343',
> 'operacion' => 'Importacion',
> 'fecha_est_arribo' => object(Cake\I18n\FrozenTime) {
>
> 'time' => '2017-11-27T15:50:00+00:00',
> 'timezone' => 'UTC',
> 'fixedNowTime' => false
>
> },
>
>
> El 27 de noviembre de 2017, 9:35, Abraham Zenteno Sánchez <
> [email protected]> escribió:
>
>> Al hacer clic en el boton submit todos los datos de formulario se envian
>> por POST si quieres visualizar que es lo que estas recibiendo por POST,
>> cuando realizas la siguiente instrucción:
>>
>> $contenedore = $this->Contenedores->patchEntity($contenedore,
>> $this->request->getData());
>> debug($contenedore); //esta instrucción imprimirá todas las variables y
>> contenidos en formato de array para que puedas visualizar cual es el nombre
>> de tu variable a utilizar en el case, si no funciona debug prueba con
>> print_r($contenedore)
>>
>> El 27 de noviembre de 2017, 07:57, Misael Morin<xxxroyxxxmustangxxx@gmai
>> l.com> escribió:
>>
>>> hola que tal pues supongo yo que es así como se llama la variable ya que
>>> el dato que se inserta es navieras_id y va. a la base de datos y si no es
>>> el caso como podría yo ver la variable del dato ???? y de igual manera
>>> nuevamente muchas gracias por tu ayuda =)
>>>
>>> El viernes, 24 de noviembre de 2017, 11:58:50 (UTC-6), kraxbox escribió:
>>>>
>>>> Debes reemplazar 'navieras_id' por la variable que viene por post o
>>>> data, del select que está en tu formulario y se envía por post o data.
>>>>
>>>> 'navieras_id' solo es un ejemplo de lo que debes poner ahí.
>>>>
>>>> El 24 nov. 2017 10:45 AM, "Misael Morin" <[email protected]>
>>>> escribió:
>>>>
>>>>> hola que tal gracias por ayudarme pero con el switch en el controlador
>>>>> me marca error con la palabra case si lo hago con if no me funciona bien
>>>>> no
>>>>> me marca error pero ignora la condición y la banca se va directo al else
>>>>> esto es lo que tengo con if else
>>>>> public function add()
>>>>> {
>>>>> $contenedore = $this->Contenedores->newEntity();
>>>>>
>>>>> if ($this->request->is('post')) {
>>>>> $contenedore = $this->Contenedores->patchEntity($contenedore,
>>>>> $this->request->getData());
>>>>> if ('navieras_id') {
>>>>> if ($this->Contenedores->save($contenedore))
>>>>> {
>>>>>
>>>>> $this->Flash->success(__('The contenedore has been
>>>>> saved.'));
>>>>>
>>>>> if('navieras-id' ==1){
>>>>> $this->redirect(['controller'=>'Complementos',
>>>>> 'action' => 'add']); //crea la vista uno que obviamente es un action
>>>>> dentro
>>>>> del controlador
>>>>> }
>>>>> else
>>>>> {
>>>>> $this->redirect(['controller' =>
>>>>> 'controlador','action' => 'acccion_navieras_2']); //crea la vista dos que
>>>>> obviamente es un action dentro del controlador
>>>>> }
>>>>> //return $this->redirect(['controller'=>'Complementos',
>>>>> 'action' => 'add']);
>>>>> }
>>>>> $this->Flash->error(__('The contenedore could not be
>>>>> saved. Please, try again.'));
>>>>>
>>>>> }}
>>>>> $navieras = $this->Contenedores->Navieras->find('list',
>>>>> ['keyField' => 'id','valueField'=>'razon_social']);
>>>>> $this->set(compact('contenedore', 'navieras'));
>>>>> $this->set('_serialize', ['contenedore']);
>>>>>
>>>>> }
>>>>>
>>>>> y esto es lo que tu me habías propuesto:
>>>>>
>>>>> public function add()
>>>>> {
>>>>> $contenedore = $this->Contenedores->newEntity();
>>>>>
>>>>> if ($this->request->is('post')) {
>>>>> $contenedore = $this->Contenedores->patchEntity($contenedore,
>>>>> $this->request->getData());
>>>>> if ('navieras_id') {
>>>>> if ($this->Contenedores->save($contenedore))
>>>>> {
>>>>>
>>>>> $this->Flash->success(__('The contenedore has been
>>>>> saved.'));
>>>>> swicth($navieras)
>>>>> {
>>>>> case 0:
>>>>> $this->redirect(['controller'=>'Complementos',
>>>>> 'action' => 'add']); //crea la vista uno que obviamente es un action
>>>>> dentro
>>>>> del controlador
>>>>> break;
>>>>> case 1:
>>>>> $this->redirect(['controller' =>
>>>>> 'controlador','action' => 'acccion_navieras_2']); //crea la vista dos que
>>>>> obviamente es un action dentro del controlador
>>>>> break;
>>>>> //return $this->redirect(['controller'=>'Complementos',
>>>>> 'action' => 'add']); }
>>>>> $this->Flash->error(__('The contenedore could not be
>>>>> saved. Please, try again.'));
>>>>>
>>>>> }}
>>>>> $navieras = $this->Contenedores->Navieras->find('list',
>>>>> ['keyField' => 'id','valueField'=>'razon_social']);
>>>>> $this->set(compact('contenedore', 'navieras'));
>>>>> $this->set('_serialize', ['contenedore']);
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>> y este es el error que me arroja
>>>>>
>>>>> syntax error, unexpected 'case' (T_CASE)
>>>>> de igual manera gracias nuevamente
>>>>>
>>>>> El jueves, 23 de noviembre de 2017, 12:14:52 (UTC-6), kraxbox escribió:
>>>>>>
>>>>>> si lo que quieres es que después de hacer save re direcciones a una
>>>>>> vista determinada dependiendo de la selección en Navieras con el switch y
>>>>>> redirect es suficiente
>>>>>>
>>>>>> //este código debe ir después del save dentro del controlador en el
>>>>>> action add, olvida Jquery
>>>>>>
>>>>>> swicth(opcion_navieras){
>>>>>> case 0:
>>>>>> $this->redirect(['controller' => 'controlador','action' =>
>>>>>> 'acccion_navieras_1']); //crea la vista uno que obviamente es un action
>>>>>> dentro del controlador
>>>>>> break;
>>>>>> case 0:
>>>>>> $this->redirect(['controller' => 'controlador','action' =>
>>>>>> 'acccion_navieras_2']); //crea la vista dos que obviamente es un action
>>>>>> dentro del controlador
>>>>>> break;
>>>>>> }
>>>>>>
>>>>>> El jueves, 23 de noviembre de 2017, 11:59:00 (UTC-6), Misael Morin
>>>>>> escribió:
>>>>>>>
>>>>>>>
>>>>>>>>> mas bien seria que depende la seccion de navieras el controlador
>>>>>>>>> envie a una vista o a otra pero no se como hacer eso seria de igual
>>>>>>>>> manera
>>>>>>>>> con jquery o como de igual manera gracias por tu pronta respuesta
>>>>>>>>>
>>>>>>>>
>>>>>>> El jueves, 23 de noviembre de 2017, 11:42:55 (UTC-6), kraxbox
>>>>>>> escribió:
>>>>>>>>
>>>>>>>> Haber si entiendo bien, dependiendo de la selección de Navieras el
>>>>>>>> form se redirija a diferentes acciones en el Controlador, lo que yo
>>>>>>>> haría
>>>>>>>> es cambiar la propiedad del action del Form, y esto como se cambia: con
>>>>>>>> jquery facil
>>>>>>>>
>>>>>>>> $("#id_select").change(function(){
>>>>>>>> switch($("#id_select").val()){
>>>>>>>> case 0:
>>>>>>>> $('#formId').attr('action', '/controlador/accion1'
>>>>>>>> );
>>>>>>>> break;
>>>>>>>> case 1:
>>>>>>>> $('#formId').attr('action', '/controlador/accion2'
>>>>>>>> );
>>>>>>>> break;
>>>>>>>> }
>>>>>>>> });
>>>>>>>>
>>>>>>>> Espero te sirva
>>>>>>>> El jueves, 23 de noviembre de 2017, 10:32:44 (UTC-6), Misael Morin
>>>>>>>> escribió:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> <https://lh3.googleusercontent.com/-2uZBoCfipJc/Whb3K2Ume1I/AAAAAAAALr8/hm-CHVWA2xQUpZn0RZuKAFaFkUxfOS89QCLcBGAs/s1600/Captura%2Bde%2Bpantalla%2B2017-11-23%2B10.26.08.png>
>>>>>>>>> Hola que tal en una vista tengo una lista desplegable que muestro
>>>>>>>>> datos desde otra tabla lo que quiero hacer es que si de esos datos que
>>>>>>>>> muestro hapag o maersk que si selecciono 1 haga una accion en el
>>>>>>>>> contolador
>>>>>>>>> y si selecciono el otro haga una accion diferente
>>>>>>>>>
>>>>>>>>> este es mi controlador para esta vista pero no se como lo podria
>>>>>>>>> hacer si con un if o con que si alguein me pudiera ayudar se lo
>>>>>>>>> agradeceria
>>>>>>>>> mucho
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> <https://lh3.googleusercontent.com/-MopkKKEtMao/Whb33xnFcGI/AAAAAAAALsE/egH6O62n94Ik6Pn5htSqxhVcPjF-LjoiQCLcBGAs/s1600/Captura%2Bde%2Bpantalla%2B2017-11-23%2B10.25.43.png>
>>>>>>>>>
>>>>>>>>> --
>>>>> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es"
>>>>> de Grupos de Google.
>>>>> Para cancelar la suscripción a este grupo y dejar de recibir sus
>>>>> mensajes, envía un correo electrónico a [email protected]
>>>>> m.
>>>>> Para publicar en este grupo, envía un correo electrónico a
>>>>> [email protected].
>>>>> Visita este grupo en https://groups.google.com/group/cakephp-es.
>>>>> Para acceder a más opciones, visita https://groups.google.com/d/optout
>>>>> .
>>>>>
>>>> --
>>> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
>>> Grupos de Google.
>>> Para cancelar la suscripción a este grupo y dejar de recibir sus
>>> mensajes, envía un correo electrónico a cakephp-es+unsubscribe@googleg
>>> roups.com.
>>> Para publicar en este grupo, envía un correo electrónico a
>>> [email protected].
>>> Visita este grupo en https://groups.google.com/group/cakephp-es.
>>> Para acceder a más opciones, visita https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> --
>> ISC Abraham Zenteno Sánchez
>> Tel (222) 144 53 70
>> Cel: 2225245575
>>
>> Facebook /abzenteno
>> Twitter @abzenteno
>>
>> --
>> Has recibido este mensaje porque estás suscrito a un tema del grupo
>> "CakePHP-es" de Grupos de Google.
>> Para cancelar la suscripción a este tema, visita
>> https://groups.google.com/d/topic/cakephp-es/E8Q2jtNclNQ/unsubscribe.
>> Para cancelar la suscripción a este grupo y a todos sus temas, envía un
>> correo electrónico a [email protected].
>> Para publicar en este grupo, envía un correo electrónico a
>> [email protected].
>> Visita este grupo en https://groups.google.com/group/cakephp-es.
>> Para acceder a más opciones, visita https://groups.google.com/d/optout.
>>
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
> Grupos de Google.
> Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes,
> envía un correo electrónico a [email protected].
> Para publicar en este grupo, envía un correo electrónico a
> [email protected].
> Visita este grupo en https://groups.google.com/group/cakephp-es.
> Para acceder a más opciones, visita https://groups.google.com/d/optout.
>
--
ISC Abraham Zenteno Sánchez
Tel (222) 144 53 70
Cel: 2225245575
Facebook /abzenteno
Twitter @abzenteno
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos
de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes,
envía un correo electrónico a [email protected].
Para publicar una entrada en este grupo, envía un correo electrónico a
[email protected].
Visita este grupo en https://groups.google.com/group/cakephp-es.
Para obtener más opciones, visita https://groups.google.com/d/optout.