{"id":1523,"date":"2017-05-16T13:54:16","date_gmt":"2017-05-16T12:54:16","guid":{"rendered":"https:\/\/www.kumbiaphp.com\/blog\/?p=1523"},"modified":"2026-04-14T00:04:51","modified_gmt":"2026-04-13T23:04:51","slug":"scaffoldcontroller-modificando-vistas","status":"publish","type":"post","link":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/","title":{"rendered":"ScaffoldController: Modificando vistas"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Hasta aqu\u00ed hemos invertido tiempo en revisar el <a href=\"https:\/\/www.kumbiaphp.com\/blog\/2017\/04\/03\/scaffolding-para-crud-abm-sencillos-y-no-tanto-primera-parte\/\">uso b\u00e1sico del&nbsp;ScaffoldController<\/a> con <a href=\"https:\/\/www.kumbiaphp.com\/blog\/\" target=\"_blank\" rel=\"noopener noreferrer\">KumbiaPHP<\/a> creando nuestros CRUDs de forma r\u00e1pida, <a href=\"https:\/\/www.kumbiaphp.com\/blog\/2017\/04\/12\/scaffolding-con-kumbiaphp-modificando-comportamientos-y-contenidos-segun-nuestra-necesidad\/\">modificando el estilo de las vistas<\/a> (al a\u00f1adir un nuevo conjunto de vistas que cargan mediante la variable de controlador <em>$scaffold<\/em>), y reemplazando comportamientos particulares para modificar el conjunto de datos (al reescribir el m\u00e9todo <em>index<\/em>).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Nueva meta u objetivo usando ScaffoldController<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Este post tiene por objetivo hacer un resumen de lo que ya hemos visto en las entregas anteriores, y sacar a\u00fan m\u00e1s partido al uso de scaffolding con nuestro framework, de tal manera que puedas aplicar los conceptos que se describen en otras situaciones y as\u00ed buscar mantener el principio DRY: <a href=\"https:\/\/es.wikipedia.org\/wiki\/No_te_repitas\" target=\"_blank\" rel=\"noopener noreferrer\">No te repitas<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En s\u00ed, el uso de Scaffolding es una declaraci\u00f3n clara del principio DRY, pues lo usamos para no tener que copiar y pegar comportamientos que son inherentes a diferentes situaciones: como crear, actualizar, eliminar y listar registros de una tabla (a modo de ejemplo, podr\u00edamos crear controladores scaffolding o heredables para otras tareas que no sean siempre la gesti\u00f3n de datos en tablas).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A modo de a\u00f1adir m\u00e1s fuerza al principio, los frameworks de desarrollo web se han creado bas\u00e1ndose primariamente en dicha idea: escribir lo necesario, evitando repetir comportamientos, y por ende se disminuye el n\u00famero de l\u00edneas de c\u00f3digo, el nivel de errores y, por ende, el tiempo de desarrollo y mantenimiento de los sistemas o aplicaciones creados con ellos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso es que existe una clasificaci\u00f3n de carpetas: para controladores, modelos, vistas, ayudantes (helpers), librer\u00edas particulares, y librer\u00edas externas (vendors).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si necesita comprender m\u00e1s los conceptos b\u00e1sicos de nuestro framework puede ver <a href=\"https:\/\/www.kumbiaphp.com\/blog\/2016\/05\/26\/kumbiaphp-essentials\/\">Kumbia Essentials<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Manos a la obra<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Como ya se mencion\u00f3, un scaffolding es una estrategia para no repetir c\u00f3digo que se usa en labores comunes. Hasta aqu\u00ed lo hemos usado para tener un CRUD de la tabla que representa las categor\u00edas, y tambi\u00e9n nos ha permitido sobrescribir la forma en que hacemos la presentaci\u00f3n de la acci\u00f3n index (listar los registros de la tabla).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora iremos un poco m\u00e1s lejos<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Modificaremos la vista particular de la acci\u00f3n index.<\/li>\n\n\n\n<li>Sobrescribiremos nuestro controlador para modificar el comportamiento al guardar y actualizar los registros.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">El cliente nos pide modificar la visualizaci\u00f3n de la lista de categor\u00edas para quitar de ella los atributos de fecha y renombrar el atributo nombre y categor\u00edas por Nombre Categor\u00eda y Categor\u00eda Padre. Tambi\u00e9n nos solicita modificar el comportamiento de la acci\u00f3n <em>crear<\/em> para que el formulario aparezca limpio para agregar nuevamente, en vez de viajar a index una vez enviado el formulario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De igual forma debe hacerse para que la acci\u00f3n editar recargue el formulario modificado en vez de viajar a index. Iremos de lo f\u00e1cil a lo menos f\u00e1cil.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">Modificaremos el comportamiento de crear, y editar en nuestro controlador.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos mirar el m\u00e9todo <strong>crear<\/strong> desde ScaffoldController (<em>app\/libs\/scaffold_controller.php<\/em>) y mejorarlo para nuestro controlador de categorias (<em>app\/controllers\/categorias_controller.php<\/em>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una propuesta podr\u00eda ser como la que se presenta a continuaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code language-php\"><code class=\"\" data-line=\"\">public function crear()\n{\n    if ( Input::hasPost(&#039;Categorias&#039;) ) {\n        $categoria = new Categorias(Input::post(&#039;Categorias&#039;));\n        \n        \/\/comprobar si se puede realizar la creacion del elemento\n        if ( !$categoria-&gt;save() ) {\n            Flash::error(&#039;Fall\u00f3 Operaci\u00f3n&#039;);\n            \/\/hacer persistente el objeto con los datos enviados\n            $this-&gt;Categorias = $categoria;\n            Input::delete(&#039;Categorias&#039;);\n        }\n    }\n    $this-&gt;Categorias = new Categorias;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta propuesta elimina la redirecci\u00f3n a index, y limpiar el contenido de <em>Input::post(&#8216;modelo&#8217;)<\/em> para que el formulario permanezca en blanco y as\u00ed nos permita agregar un nuevo elemento de forma inmediata.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Repetiremos el procedimiento en el m\u00e9todo <strong>editar<\/strong>. Iremos al controlador ScaffoldController, y desde \u00e9l mejoraremos el m\u00e9todo <strong>editar<\/strong>, peg\u00e1ndolo bajo el&nbsp;m\u00e9todo <strong>crear<\/strong>&nbsp;del controlador de categor\u00edas. La propuesta para editar deber\u00eda ser algo como la siguiente figura:<\/p>\n\n\n\n<pre class=\"wp-block-code language-php\"><code class=\"\" data-line=\"\">public function editar($id)\n{\n    View::select(&#039;crear&#039;); \/\/usamos la misma vista que crear\n\n    if ( Input::hasPost(&#039;Categorias&#039;) ) {\n        $categoria = new Categorias;          \n        \/\/comprobar si se puede realizar la actualizaci\u00f3n del elemento\n        if ( !$categoria-&gt;update(Input::post(&#039;Categorias&#039;)) ) {\n            Flash::error(&#039;Fall\u00f3 Operaci\u00f3n&#039;);\n            \/\/hacer persistente el objeto con los datos del formulario\n            $this-&gt;Categorias = $categoria;\n\n            Input::delete(&#039;Categorias&#039;);\n        }\n    }\n    \/\/aplicar autocarga del objeto para comenzar\/continuar la edici\u00f3n\n    $this-&gt;Categorias = (new Categorias)-&gt;find((int)$id);\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Modificando vistas<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Modificaremos la vista index est\u00e1ndar. Para ello crearemos una nueva vista index dentro de <em>app\/views\/categorias<\/em>. El archivo debe ser llamado como index.phtml.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La estructura de archivos del proyecto deber\u00eda verse as\u00ed:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nueva-vista-index.png\"><img loading=\"lazy\" decoding=\"async\" width=\"196\" height=\"395\" src=\"https:\/\/www.kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nueva-vista-index.png\" alt=\"ScaffoldController: Listado de directorios y archivos para la nueva vista index del controlador de categor\u00edas\" class=\"wp-image-1534\" srcset=\"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nueva-vista-index.png 196w, https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nueva-vista-index-149x300.png 149w\" sizes=\"auto, (max-width: 196px) 100vw, 196px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Copiaremos el contenido de la vista index del scaffolding, la que est\u00e1 en <em>app\/views\/_shared\/scaffolds\/kumbia\/index.phtml<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quitaremos los atributos de fecha y renombraremos las columnas de nombre y de categor\u00eda padre. La vista nos deber\u00eda quedar m\u00e1s o menos as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code language-php\"><code class=\"\" data-line=\"\">&lt;div id=&quot;scaffold&quot;&gt;\n&lt;?php View::content()?&gt;\n&lt;h1&gt;&lt;?= ucwords(&quot;$model&quot;), &quot;: &lt;span&gt;$action_name&lt;\/span&gt;&quot; ?&gt;&lt;\/h1&gt;\n&lt;div class=&quot;actions&quot;&gt;\n    &lt;?= Html::linkAction(&quot;crear\/&quot;, &#039;Crear registro&#039;, &#039;class=&quot;btn btn-primary&quot;&#039;)?&gt;\n&lt;\/div&gt;\n\n&lt;?php if (isset($data-&gt;items) &amp;&amp; (count($data-&gt;items) &gt; 0)) : ?&gt;\n&lt;table class=&quot;t&quot;&gt;\n    &lt;thead&gt;&lt;tr&gt;\n    &lt;th&gt;Id&lt;\/id&gt;\n    &lt;th&gt;Nombre&lt;\/id&gt;\n    &lt;th&gt;Categoria Padre&lt;\/id&gt;\n    &lt;th&gt;Acciones&lt;\/th&gt;\n    &lt;\/tr&gt;&lt;\/thead&gt;\n    &lt;tbody&gt;\n    &lt;?php foreach ($data-&gt;items as $item) : ?&gt;\n        &lt;tr&gt;\n            &lt;td&gt;&lt;?= h($item-&gt;id)?&gt;&lt;\/td&gt;\n            &lt;td&gt;&lt;?= h($item-&gt;nombre)?&gt;&lt;\/td&gt;\n            &lt;td&gt;&lt;?= h($item-&gt;categorias_id)?&gt;&lt;\/td&gt;\n            &lt;td&gt;&lt;?= Html::linkAction(&quot;ver\/$item-&gt;id&quot;, &#039;Ver&#039;)?&gt; |\n            &lt;?= Html::linkAction(&quot;editar\/$item-&gt;id&quot;, &#039;Editar&#039;)?&gt; |\n            &lt;?= Html::linkAction(&quot;borrar\/$item-&gt;id&quot;, &#039;Borrar&#039;, &#039;onclick=&quot;return confirm(\\&#039;\u00bfEst\u00e1 seguro?\\&#039;)&quot;&#039;) ?&gt;\n            &lt;\/td&gt;\n        &lt;\/tr&gt;\n    &lt;?php endforeach?&gt;\n    &lt;\/tbody&gt;\n&lt;\/table&gt;\n\n&lt;?php View::partial(&#039;paginators\/digg&#039;, false, array(&#039;page&#039; =&gt; $data ,&#039;url&#039; =&gt; Router::get(&#039;controller_path&#039;).&#039;\/index&#039;)) ?&gt;\n&lt;?php else : \/\/ Si no hay items?&gt;\n&lt;h2&gt;No hay ning\u00fan registro&lt;\/h2&gt;\n&lt;?php endif ?&gt;\n&lt;\/div&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Al ejecutar el acceso a la vista deber\u00edamos lograr algo similar a la siguiente figura:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nuevo-index-fase-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"727\" height=\"493\" src=\"https:\/\/www.kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nuevo-index-fase-1.png\" alt=\"ScaffoldController: Vista de navegador para el reemplazo de la vista index en el controlador de categor\u00edas\" class=\"wp-image-1536\" srcset=\"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nuevo-index-fase-1.png 727w, https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nuevo-index-fase-1-300x203.png 300w, https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nuevo-index-fase-1-650x440.png 650w\" sizes=\"auto, (max-width: 727px) 100vw, 727px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero nuestro cliente necesita que la categor\u00eda padre quede expresada con el nombre, no con su c\u00f3digo de referencia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entonces, lo que haremos finalmente es modificar el m\u00e9todo index y el modelo que enlaza la tabla categor\u00edas de la siguiente forma, comenzando por el modelo (<em>app\/models\/categorias.php<\/em>):<\/p>\n\n\n\n<pre class=\"wp-block-code language-php\"><code class=\"\" data-line=\"\">&lt;?php\nclass Categorias extends ActiveRecord\n{      \n    function getCategorias($page = 1)\n    {\n        return $this-&gt;paginate(\n            &#039;columns: categorias.id, categorias.nombre, cat.nombre as categorias_id&#039;,\n            &#039;join: left outer join categorias cat on categorias.categorias_id = cat.id&#039;,\n            &quot;page: $page&quot;, &#039;order: categorias.id desc&#039;);\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Modificamos la consulta para dotar a la paginaci\u00f3n de la referencia al nombre de la categor\u00eda padre usando los par\u00e1metros columns y join.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En nuestro controlador de categor\u00edas modificaremos el m\u00e9todo index para que pueda usar esta nueva paginaci\u00f3n, quedando el resultado como se ve a continuaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code language-php\"><code class=\"\" data-line=\"\">&lt;?php\nclass CategoriasController extends ScaffoldController\n{\n    public $model = &#039;Categorias&#039;;\n    public $scaffold = &#039;skeleton&#039;;   \n\n    public function index($page=1)\n    {\n        $this-&gt;data = (new Categorias)-&gt;getCategorias($page);\n    }<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Finalmente el resultado de la vista index se ver\u00e1 como lo presenta la siguiente figura:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nuevo-index-fase-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"726\" height=\"486\" src=\"https:\/\/www.kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nuevo-index-fase-2.png\" alt=\"ScaffoldController: Vista del m\u00e9todo index con Categor\u00eda padre como nombre\" class=\"wp-image-1539\" srcset=\"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nuevo-index-fase-2.png 726w, https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nuevo-index-fase-2-300x201.png 300w, https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nuevo-index-fase-2-440x294.png 440w\" sizes=\"auto, (max-width: 726px) 100vw, 726px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hasta aqu\u00ed llega la publicaci\u00f3n dedicada al tema del scaffolding, pero antes de terminar haremos un resumen hasta aqu\u00ed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En este episodio hemos modificado el comportamiento del m\u00e9todo crear sobrescribiendo el m\u00e9todo base del controlador Scaffold, tambi\u00e9n hemos modificado el comportamiento para editar, y para index.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hemos agregado una vista personalizada para la acci\u00f3n index, y a\u00fan as\u00ed seguimos usando ScaffoldController.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00f3lo nos restar\u00e1 por tarea crear nuestro propio Scaffold para poder mantener el principio DRY usando los comportamientos sin redirecci\u00f3n para el m\u00e9todo crear y editar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si te perdiste los otros post de esta serie, puedes leerlos en los siguientes enlaces:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.kumbiaphp.com\/blog\/2017\/04\/03\/scaffolding-para-crud-abm-sencillos-y-no-tanto-primera-parte\/\">Scaffolding para CRUD (ABM) sencillos (y no tanto) \u2013 primera parteparte 1<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.kumbiaphp.com\/blog\/2017\/04\/12\/scaffolding-con-kumbiaphp-modificando-comportamientos-y-contenidos-segun-nuestra-necesidad\/\">ScaffoldController: Modificando comportamientos y contenidos<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un abrazo cordial a nuestros colegas y a los que han de venir,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/twitter.com\/nelsonrojas\" target=\"_blank\" rel=\"noopener noreferrer\">@nelsonrojas<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hasta aqu\u00ed hemos invertido tiempo en revisar el uso b\u00e1sico del&nbsp;ScaffoldController con KumbiaPHP creando nuestros CRUDs de forma r\u00e1pida,&hellip;<\/p>\n","protected":false},"author":18,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[20,8,124,9],"tags":[],"class_list":["post-1523","post","type-post","status-publish","format-standard","hentry","category-activerecord","category-documentacion","category-scaffolding","category-tutoriales-y-screencast"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ScaffoldController: Modificando vistas - KumbiaPHP Framework PHP<\/title>\n<meta name=\"description\" content=\"ScaffoldController: Mostramos como sobrescribirlo para modificar el comportajmiento al guardar y actualizar registros, modificando tambi\u00e9n la vista index.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ScaffoldController: Modificando vistas - KumbiaPHP Framework PHP\" \/>\n<meta property=\"og:description\" content=\"ScaffoldController: Mostramos como sobrescribirlo para modificar el comportajmiento al guardar y actualizar registros, modificando tambi\u00e9n la vista index.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/\" \/>\n<meta property=\"og:site_name\" content=\"KumbiaPHP Framework PHP en espa\u00f1ol\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kumbia.fw\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-16T12:54:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-13T23:04:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nueva-vista-index.png\" \/>\n\t<meta property=\"og:image:width\" content=\"196\" \/>\n\t<meta property=\"og:image:height\" content=\"395\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nelson Rojas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nelson955443098\" \/>\n<meta name=\"twitter:site\" content=\"@kumbiaphp\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nelson Rojas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/\"},\"author\":{\"name\":\"Nelson Rojas\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#\\\/schema\\\/person\\\/f321b5debe6a875d1d1d1154e4502ffb\"},\"headline\":\"ScaffoldController: Modificando vistas\",\"datePublished\":\"2017-05-16T12:54:16+00:00\",\"dateModified\":\"2026-04-13T23:04:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/\"},\"wordCount\":986,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/nueva-vista-index.png\",\"articleSection\":[\"ActiveRecord\",\"Documentaci\u00f3n\",\"Scaffolding\",\"Tutoriales y screencast\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/\",\"name\":\"ScaffoldController: Modificando vistas - KumbiaPHP Framework PHP\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/nueva-vista-index.png\",\"datePublished\":\"2017-05-16T12:54:16+00:00\",\"dateModified\":\"2026-04-13T23:04:51+00:00\",\"description\":\"ScaffoldController: Mostramos como sobrescribirlo para modificar el comportajmiento al guardar y actualizar registros, modificando tambi\u00e9n la vista index.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/nueva-vista-index.png\",\"contentUrl\":\"https:\\\/\\\/www.kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/nueva-vista-index.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/05\\\/16\\\/scaffoldcontroller-modificando-vistas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ScaffoldController: Modificando vistas\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/\",\"name\":\"KumbiaPHP Framework PHP en espa\u00f1ol\",\"description\":\"Web &amp; app MVC PHP framework\",\"publisher\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#organization\",\"name\":\"KumbiaPHP Framework PHP en espa\u00f1ol\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/logo.png\",\"width\":432,\"height\":50,\"caption\":\"KumbiaPHP Framework PHP en espa\u00f1ol\"},\"image\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/kumbia.fw\",\"https:\\\/\\\/x.com\\\/kumbiaphp\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#\\\/schema\\\/person\\\/f321b5debe6a875d1d1d1154e4502ffb\",\"name\":\"Nelson Rojas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/35b46624735bd8094a5aaef0242fe02dbe01451b909a85608578c09417e38478?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/35b46624735bd8094a5aaef0242fe02dbe01451b909a85608578c09417e38478?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/35b46624735bd8094a5aaef0242fe02dbe01451b909a85608578c09417e38478?s=96&d=mm&r=g\",\"caption\":\"Nelson Rojas\"},\"description\":\"Especialista en c\u00f3digo de programaci\u00f3n y bases de datos, uso de herramientas Open Source, conferencista ocasional.\",\"sameAs\":[\"http:\\\/\\\/nelsonrojas.wordpress.com\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/nelson-rojas-nu\u00f1ez-888a60239\\\/\",\"https:\\\/\\\/x.com\\\/nelson955443098\",\"https:\\\/\\\/www.youtube.com\\\/@nelsonrojasnunez\"],\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/author\\\/nelson-rojas\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ScaffoldController: Modificando vistas - KumbiaPHP Framework PHP","description":"ScaffoldController: Mostramos como sobrescribirlo para modificar el comportajmiento al guardar y actualizar registros, modificando tambi\u00e9n la vista index.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/","og_locale":"es_ES","og_type":"article","og_title":"ScaffoldController: Modificando vistas - KumbiaPHP Framework PHP","og_description":"ScaffoldController: Mostramos como sobrescribirlo para modificar el comportajmiento al guardar y actualizar registros, modificando tambi\u00e9n la vista index.","og_url":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/","og_site_name":"KumbiaPHP Framework PHP en espa\u00f1ol","article_publisher":"https:\/\/www.facebook.com\/kumbia.fw","article_published_time":"2017-05-16T12:54:16+00:00","article_modified_time":"2026-04-13T23:04:51+00:00","og_image":[{"width":196,"height":395,"url":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nueva-vista-index.png","type":"image\/png"}],"author":"Nelson Rojas","twitter_card":"summary_large_image","twitter_creator":"@nelson955443098","twitter_site":"@kumbiaphp","twitter_misc":{"Escrito por":"Nelson Rojas","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/#article","isPartOf":{"@id":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/"},"author":{"name":"Nelson Rojas","@id":"https:\/\/kumbiaphp.com\/blog\/#\/schema\/person\/f321b5debe6a875d1d1d1154e4502ffb"},"headline":"ScaffoldController: Modificando vistas","datePublished":"2017-05-16T12:54:16+00:00","dateModified":"2026-04-13T23:04:51+00:00","mainEntityOfPage":{"@id":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/"},"wordCount":986,"commentCount":1,"publisher":{"@id":"https:\/\/kumbiaphp.com\/blog\/#organization"},"image":{"@id":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nueva-vista-index.png","articleSection":["ActiveRecord","Documentaci\u00f3n","Scaffolding","Tutoriales y screencast"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/","url":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/","name":"ScaffoldController: Modificando vistas - KumbiaPHP Framework PHP","isPartOf":{"@id":"https:\/\/kumbiaphp.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/#primaryimage"},"image":{"@id":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nueva-vista-index.png","datePublished":"2017-05-16T12:54:16+00:00","dateModified":"2026-04-13T23:04:51+00:00","description":"ScaffoldController: Mostramos como sobrescribirlo para modificar el comportajmiento al guardar y actualizar registros, modificando tambi\u00e9n la vista index.","breadcrumb":{"@id":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/#primaryimage","url":"https:\/\/www.kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nueva-vista-index.png","contentUrl":"https:\/\/www.kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/nueva-vista-index.png"},{"@type":"BreadcrumbList","@id":"https:\/\/kumbiaphp.com\/blog\/2017\/05\/16\/scaffoldcontroller-modificando-vistas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/kumbiaphp.com\/blog\/"},{"@type":"ListItem","position":2,"name":"ScaffoldController: Modificando vistas"}]},{"@type":"WebSite","@id":"https:\/\/kumbiaphp.com\/blog\/#website","url":"https:\/\/kumbiaphp.com\/blog\/","name":"KumbiaPHP Framework PHP en espa\u00f1ol","description":"Web &amp; app MVC PHP framework","publisher":{"@id":"https:\/\/kumbiaphp.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kumbiaphp.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kumbiaphp.com\/blog\/#organization","name":"KumbiaPHP Framework PHP en espa\u00f1ol","url":"https:\/\/kumbiaphp.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kumbiaphp.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2015\/02\/logo.png","contentUrl":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2015\/02\/logo.png","width":432,"height":50,"caption":"KumbiaPHP Framework PHP en espa\u00f1ol"},"image":{"@id":"https:\/\/kumbiaphp.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kumbia.fw","https:\/\/x.com\/kumbiaphp"]},{"@type":"Person","@id":"https:\/\/kumbiaphp.com\/blog\/#\/schema\/person\/f321b5debe6a875d1d1d1154e4502ffb","name":"Nelson Rojas","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/35b46624735bd8094a5aaef0242fe02dbe01451b909a85608578c09417e38478?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/35b46624735bd8094a5aaef0242fe02dbe01451b909a85608578c09417e38478?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/35b46624735bd8094a5aaef0242fe02dbe01451b909a85608578c09417e38478?s=96&d=mm&r=g","caption":"Nelson Rojas"},"description":"Especialista en c\u00f3digo de programaci\u00f3n y bases de datos, uso de herramientas Open Source, conferencista ocasional.","sameAs":["http:\/\/nelsonrojas.wordpress.com","https:\/\/www.linkedin.com\/in\/nelson-rojas-nu\u00f1ez-888a60239\/","https:\/\/x.com\/nelson955443098","https:\/\/www.youtube.com\/@nelsonrojasnunez"],"url":"https:\/\/kumbiaphp.com\/blog\/author\/nelson-rojas\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/posts\/1523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/comments?post=1523"}],"version-history":[{"count":21,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/posts\/1523\/revisions"}],"predecessor-version":[{"id":3119,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/posts\/1523\/revisions\/3119"}],"wp:attachment":[{"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/media?parent=1523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/categories?post=1523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/tags?post=1523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}