{"id":23912,"date":"2021-05-07T16:15:00","date_gmt":"2021-05-07T13:15:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=23912"},"modified":"2021-10-18T03:17:44","modified_gmt":"2021-10-18T00:17:44","slug":"modo-migliore-per-creare-controller-laravel-per-operazioni-crud","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/modo-migliore-per-creare-controller-laravel-per-operazioni-crud\/","title":{"rendered":"Modo migliore per creare controller Laravel per operazioni CRUD"},"content":{"rendered":"<p>Laravel funziona sul modello architettonico MVC (Model-View-Controller). Se stai eseguendo un&#8217;applicazione sul framework Laravel, devi creare modello, vista, controller per la tua applicazione.<\/p>\n<p>In Laravel, \u00e8 possibile creare un controller e un modello tramite l&#8217;interfaccia della riga di comando. Laravel craft \u00e8 l&#8217;interfaccia a riga di comando che fornisce una serie di comandi che ci aiutano a costruire l&#8217;applicazione. Possiamo e dobbiamo creare un Controller usando il comando artigianale.<\/p>\n<h3>Crea un controller Laravel<\/h3>\n<p>Diciamo che stai lavorando sul back-end e vuoi eseguire operazioni CRUD sulle pagine. Ci\u00f2 significa che \u00e8 necessario creare un sistema per gestire le pagine che includa la creazione, il recupero, l&#8217;aggiornamento e l&#8217;eliminazione delle pagine. Naturalmente, per questa attivit\u00e0, \u00e8 necessario creare un controller.<\/p>\n<p>Normalmente, le persone eseguono il comando <code>php artisan make:controller PageController<\/code>. Questo comando genera un file <code>PageController.php<\/code>nella directory app\/Http\/Controllers.<\/p>\n<p><strong>Nota<\/strong>: \u00e8 necessario eseguire questo comando nella directory principale di un progetto utilizzando l&#8217;interfaccia della riga di comando.<\/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>In questo controller generato, \u00e8 necessario scrivere metodi e definire le route di conseguenza. Per ogni metodo, devi scrivere un percorso separato.<\/p>\n<p>Per esempio. aggiungiamo un metodo <code>index()<\/code>e definiamo un percorso per esso.<\/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>Per chiamare questa <code>index()<\/code>funzione nel file di route dovremmo aggiungere il codice seguente.<\/p>\n<p><strong>route\/web.php<\/strong><\/p>\n<pre><code>Route::get('pages', 'PageController@index');<\/code><\/pre>\n<p>Lo stesso processo si applicher\u00e0 per ogni metodo aggiuntivo.<\/p>\n<p>Non c&#8217;\u00e8 niente di sbagliato in questo flusso. Ma questo non \u00e8 un modo consigliato. Dietro la popolarit\u00e0 di Laravel, ci sono diverse ragioni. Uno dei motivi sono i loro potenti comandi artigianali avanzati.<\/p>\n<h3>Modo migliore per creare controller Laravel<\/h3>\n<p>In Laravel, non abbiamo bisogno di scrivere ogni metodo e definire un percorso separato per ogni metodo. Utilizzando il comando craft possiamo generare un controller con metodi predefiniti. E semplicemente scrivendo un singolo percorso, Laravel chiama automaticamente i metodi appropriati.<\/p>\n<p>Detto questo, apri l&#8217;interfaccia della riga di comando nella directory principale del tuo progetto ed esegui il comando seguente. Tieni presente che questa volta stiamo aggiungendo \u2013resource al nostro comando make:controller.<\/p>\n<pre><code>php artisan make:controller PageController --resource<\/code><\/pre>\n<p>Ora il generato <code>PageController.php<\/code>appare come di seguito.<\/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>Abbiamo i metodi come indicizzare, creare, archiviare, mostrare, modificare, aggiornare, distruggere automaticamente. Puoi leggere i commenti forniti per ciascun metodo che spiegano cosa fa ciascun metodo. Ora specifichiamo il percorso per esso.<\/p>\n<p><strong>route\/web.php<\/strong><\/p>\n<pre><code>Route::resource('pages', 'PageController');<\/code><\/pre>\n<p>Questo percorso pieno di risorse creer\u00e0 pi\u00f9 percorsi per gestire diverse azioni. Ora, per ottenere i dettagli sulle azioni, esegui il comando <code>php artisan route:list<\/code>. Per il percorso delle pagine, vedrai l&#8217;output come mostrato nello screenshot.<\/p>\n<p>Questo output ti d\u00e0 un&#8217;idea del metodo HTTP, dell&#8217;URL e del metodo che chiamer\u00e0 l&#8217;URL specificato.<\/p>\n<p>Ad esempio, se stai eseguendo un URL YOUR_SITE_DOMAIN\/pages con il metodo GET allora dar\u00e0 una chiamata al <code>index()<\/code>metodo di un PageController.<\/p>\n<p>Se vuoi creare una nuova pagina, l&#8217;URL sar\u00e0 TUO_SITO_DOMINIO\/pagine\/crea. D\u00e0 una chiamata al <code>create()<\/code>metodo in cui \u00e8 necessario caricare una vista per creare una nuova pagina.<\/p>\n<p>Quando invii un modulo con method=&quot;post&quot; e action=&quot;pages&quot;, viene chiamato il <code>store()<\/code>metodo.<\/p>\n<p>E cos\u00ec via.<\/p>\n<p>Si tratta di creare un controller Laravel per operazioni CRUD. Per favore condividi i tuoi pensieri nella sezione commenti qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-eseguire-il-seeding-del-database-in-laravel\/\" title=\"Come eseguire il seeding del database in Laravel\" >Come eseguire il seeding del database in Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/sistema-di-accesso-social-utilizzando-laravel-socialite\/\" title=\"Sistema di accesso social utilizzando Laravel Socialite\" >Sistema di accesso social utilizzando Laravel Socialite<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questo articolo studiamo come creare un controller Laravel per operazioni CRUD. Usando il controller pieno di risorse, otteniamo i metodi predefiniti generati<\/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":[500],"tags":[846],"class_list":["post-23912","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/23912","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=23912"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/23912\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/20716"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=23912"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=23912"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=23912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}