{"id":27330,"date":"2021-05-07T16:07:00","date_gmt":"2021-05-07T13:07:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27330"},"modified":"2021-10-17T17:24:43","modified_gmt":"2021-10-17T14:24:43","slug":"mejor-forma-de-crear-un-controlador-laravel-para-operaciones-crud","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/mejor-forma-de-crear-un-controlador-laravel-para-operaciones-crud\/","title":{"rendered":"Mejor forma de crear un controlador Laravel para operaciones CRUD"},"content":{"rendered":"<p>Laravel trabaja en el patr\u00f3n arquitect\u00f3nico MVC (Model-View-Controller). Si est\u00e1 ejecutando una aplicaci\u00f3n en el marco de Laravel, entonces debe crear modelos, vistas y controladores para su aplicaci\u00f3n.<\/p>\n<p>En Laravel, uno puede crear un controlador y un modelo a trav\u00e9s de la interfaz de l\u00ednea de comandos. Laravel artisan es la interfaz de l\u00ednea de comandos que proporciona una serie de comandos que nos ayudan a construir la aplicaci\u00f3n. Podemos y debemos crear un controlador usando el comando artisan.<\/p>\n<h3>Crea un controlador Laravel<\/h3>\n<p>Digamos que est\u00e1 trabajando en el back-end y desea realizar operaciones CRUD en las p\u00e1ginas. Eso significa que necesita construir un sistema para administrar p\u00e1ginas que incluye crear, recuperar, actualizar y eliminar p\u00e1ginas. Por supuesto, para esta tarea, necesita crear un controlador.<\/p>\n<p>Normalmente, la gente ejecuta el comando <code>php artisan make:controller PageController<\/code>. Este comando genera un archivo <code>PageController.php<\/code>en el directorio app \/ Http \/ Controllers.<\/p>\n<p><strong>Nota<\/strong>: Debe ejecutar este comando en el directorio ra\u00edz de un proyecto utilizando la interfaz de l\u00ednea de comandos.<\/p>\n<p><strong>PageController.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\n\u00a0\nclass PageController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0\/\/\n}<\/code><\/pre>\n<p>En este controlador generado, debe escribir m\u00e9todos y definir las rutas en consecuencia. Para cada m\u00e9todo, debe escribir una ruta separada.<\/p>\n<p>Por ejemplo. agreguemos un m\u00e9todo <code>index()<\/code>y definamos una ruta para \u00e9l.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\n\u00a0\nclass PageController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0public function index() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/do operations here\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Para llamar a esta <code>index()<\/code>funci\u00f3n en el archivo de ruta, debemos agregar el siguiente c\u00f3digo.<\/p>\n<p><strong>rutas \/ web.php<\/strong><\/p>\n<pre><code>Route::get('pages', 'PageController@index');<\/code><\/pre>\n<p>Se aplicar\u00e1 el mismo proceso para cada m\u00e9todo adicional.<\/p>\n<p>No hay nada de malo en este flujo. Pero esta no es la forma recomendada. Detr\u00e1s de la popularidad de Laravel, hay varias razones. Una de las razones son sus poderosos comandos artesanos avanzados.<\/p>\n<h3>Mejor forma de crear un controlador Laravel<\/h3>\n<p>En Laravel, no necesitamos escribir cada m\u00e9todo y definir una ruta separada para cada m\u00e9todo. Usando el comando artisan podemos generar un controlador con m\u00e9todos predefinidos. Y con solo escribir una sola ruta, Laravel llama autom\u00e1ticamente a los m\u00e9todos apropiados.<\/p>\n<p>Dicho esto, abra su interfaz de l\u00ednea de comandos en el directorio ra\u00edz de su proyecto y ejecute el siguiente comando. Tome nota, esta vez estamos agregando \u2013resource a nuestro comando make: controller.<\/p>\n<pre><code>php artisan make:controller PageController --resource<\/code><\/pre>\n<p>Ahora el generado se <code>PageController.php<\/code>ve como se muestra a continuaci\u00f3n.<\/p>\n<p><strong>PageController.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\n\u00a0\nclass PageController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Display a listing of the resource.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function index()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Show the form for creating a new resource.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function create()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Store a newly created resource in storage.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 IlluminateHttpRequest\u00a0 $request\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function store(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Display the specified resource.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 int\u00a0 $id\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function show($id)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Show the form for editing the specified resource.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 int\u00a0 $id\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function edit($id)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Update the specified resource in storage.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 IlluminateHttpRequest\u00a0 $request\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 int\u00a0 $id\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function update(Request $request, $id)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Remove the specified resource from storage.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 int\u00a0 $id\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function destroy($id)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Tenemos los m\u00e9todos como indexar, crear, almacenar, mostrar, editar, actualizar, destruir autom\u00e1ticamente. Puede leer los comentarios proporcionados para cada m\u00e9todo que explica lo que hace cada m\u00e9todo. Ahora especifiquemos la ruta para ello.<\/p>\n<p><strong>rutas \/ web.php<\/strong><\/p>\n<pre><code>Route::resource('pages', 'PageController');<\/code><\/pre>\n<p>Esta ruta ingeniosa crear\u00e1 m\u00faltiples rutas para manejar diferentes acciones. Ahora, para obtener los detalles sobre las acciones, ejecute el comando <code>php artisan route:list<\/code>. Para la ruta de las p\u00e1ginas, ver\u00e1 la salida como se muestra en la captura de pantalla.<\/p>\n<p>Esta salida le da una idea del m\u00e9todo HTTP, la URL y qu\u00e9 m\u00e9todo llamar\u00e1 a la URL especificada.<\/p>\n<p>Por ejemplo, si est\u00e1 ejecutando una URL YOUR_SITE_DOMAIN \/ pages con el m\u00e9todo GET, entonces dar\u00e1 una llamada al <code>index()<\/code>m\u00e9todo de un PageController.<\/p>\n<p>Si desea crear una nueva p\u00e1gina, la URL ser\u00e1 YOUR_SITE_DOMAIN \/ pages \/ create. Da una llamada al <code>create()<\/code>m\u00e9todo donde necesita cargar una vista para crear una nueva p\u00e1gina.<\/p>\n<p>Cuando env\u00edas un formulario con m\u00e9todo = &quot;publicaci\u00f3n&quot; y acci\u00f3n = &quot;p\u00e1ginas&quot;, se realiza una llamada al <code>store()<\/code>m\u00e9todo.<\/p>\n<p>Y as\u00ed.<\/p>\n<p>Se trata de crear un controlador Laravel para operaciones CRUD. Comparta sus pensamientos en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-hacer-la-siembra-de-bases-de-datos-en-laravel\/\" title=\"C\u00f3mo hacer la siembra de bases de datos en Laravel\" >C\u00f3mo hacer la siembra de bases de datos en Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/sistema-de-inicio-de-sesion-social-usando-laravel-socialite\/\" title=\"Sistema de inicio de sesi\u00f3n social usando Laravel Socialite\" >Sistema de inicio de sesi\u00f3n social usando Laravel Socialite<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este art\u00edculo, estudiamos c\u00f3mo crear un controlador Laravel para operaciones CRUD. Al usar un controlador ingenioso, obtenemos los m\u00e9todos predefinidos generados<\/p>\n","protected":false},"author":1,"featured_media":20716,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[495],"tags":[849],"class_list":["post-27330","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=27330"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27330\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/20716"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=27330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=27330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=27330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}