1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | # app/Controller/ShipmentsController.php public function toggleShipped( $id = null) { if (! $this ->Shipment->exists( $id )) { throw new NotFoundException(__( 'Invalid shipment' )); } if ( $this ->request->is([ 'post' , 'put' ])) { $shipment = $this ->Shipment->find( 'first' , [ 'conditions' => [ 'Shipment.id' => $id ] ] ); $data = [ 'shipped' => !(bool) $shipment [ 'Shipment' ][ 'shipped' ], 'id' => $id ]; //unset($this->Shipment->validate['shipped']); $this ->Shipment->set( $shipment ); if ( $this ->Shipment->save( $data )) { $this ->Flash->success( "Successfully toggled shipped state" ); } else { $errorText = '' ; // get Validation errors and append them into a string $ve = $this ->Shipment->validationErrors; foreach ( array_keys ( $ve ) as $ak ) { $errorText .= join( ' ' , $ve [ $ak ]); }; $this ->Flash->error( 'Failed to toggle shipped state. ' . $errorText ); } $this ->redirect([ 'action' => 'index' ]); } } |
This is just how I handle and display potentially multiple CakePHP 2 Validation Errors by looping through them and concatenating them together before displaying them with the Flash element
0 Comments