{"id":71922,"date":"2023-08-04T08:25:20","date_gmt":"2023-08-04T07:25:20","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=71922&#038;preview=true&#038;preview_id=71922"},"modified":"2023-08-08T13:25:30","modified_gmt":"2023-08-08T12:25:30","slug":"blog-laravel","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/","title":{"rendered":"Come creare un blog in Laravel"},"content":{"rendered":"<p><a href=\"https:\/\/kinsta.com\/it\/blog\/framework-laravel\/\">Laravel<\/a> \u00e8 un framework per applicazioni web in PHP con una sintassi espressiva ed elegante. Dispone di una vasta libreria di pacchetti e gestisce gran parte del lavoro di programmazione, lasciandovi il tempo di concentrarvi sulla vostra creativit\u00e0.<\/p>\n<p>Uno degli usi creativi di Laravel \u00e8 la creare un blog personale. Questo tutorial descrive come utilizzare Laravel per creare e pubblicare un blog su Kinsta.<\/p>\n<p>Per un&#8217;anteprima del progetto, date un&#8217;occhiata al <a href=\"https:\/\/github.com\/VirtuaCreative\/kinsta-laravel-blog\" target=\"_blank\" rel=\"noopener noreferrer\">codice completo del progetto<\/a>.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Prerequisiti<\/h2>\n<p>Per seguire questo tutorial, assicuratevi di avere i seguenti requisiti:<\/p>\n<ul>\n<li>Un server web. Questo tutorial utilizza <a href=\"https:\/\/www.apachefriends.org\/download.htmlss.html\" target=\"_blank\" rel=\"noopener noreferrer\">XAMPP<\/a>.<\/li>\n<li>Un account su GitHub, GitLab o Bitbucket per pubblicare il codice dell&#8217;applicazione.<\/li>\n<li><a href=\"https:\/\/laravel.com\/docs\/7.x\/installation\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel installato<\/a>.<\/li>\n<li>Un account MyKinsta attivo per l&#8217;hosting dell&#8217;applicazione. <a href=\"https:\/\/kinsta.com\/it\/registrazione\/?product_type=app-db\">Iscrivetevi per una prova gratuita<\/a> se non ne avete gi\u00e0 uno.<\/li>\n<\/ul>\n<p>Assicuratevi che i servizi <strong>Apache<\/strong> e <strong>MySQL<\/strong> siano attivi nel pannello di controllo di XAMPP. In caso contrario, cliccate sul pulsante <strong>Start<\/strong> di ciascun servizio nella colonna <strong>Actions<\/strong>. Il pannello di controllo XAMPP dovrebbe avere questo aspetto:<\/p>\n<figure style=\"width: 1089px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/xampp-control-panel-apache-mysql.png\" alt=\"Il display del pannello di controllo di XAMPP mostra i vari servizi del modulo.\" width=\"1089\" height=\"448\"><figcaption class=\"wp-caption-text\">Pannello di controllo XAMPP<\/figcaption><\/figure>\n<p>Per impostazione predefinita, MySQL\/MariaDB funziona sulla porta 3306. Prendete nota della porta se la cambiate.<\/p>\n<p>Se utilizzate un server web diverso da XAMPP, assicuratevi di utilizzare <a href=\"https:\/\/httpd.apache.org\/download.cgi\" target=\"_blank\" rel=\"noopener noreferrer\">Apache<\/a> o un altro software server e di aver installato il <a href=\"https:\/\/mariadb.org\/download\/\" target=\"_blank\" rel=\"noopener noreferrer\">server MariaDB<\/a> sul vostro computer locale.<\/p>\n<h3>Avvio rapido con phpMyAdmin<\/h3>\n<ol start=\"1\">\n<li>Con MySQL e Apache in funzione, accedete al browser.<\/li>\n<li>Aprite phpMyAdmin e incollate <code>http:\/\/localhost\/phpmyadmin\/<\/code>. Dovrebbe apparire la seguente schermata:<\/li>\n<\/ol>\n<figure style=\"width: 1359px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/phpmyadmin-apache-mysql.png\" alt=\"phpMyAdmin aperto nel browser.\" width=\"1359\" height=\"397\"><figcaption class=\"wp-caption-text\">phpMyAdmin aperto nel browser.<\/figcaption><\/figure>\n<p>phpMyAdmin \u00e8 uno strumento di gestione dei database per MySQL e MariaDB.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>\u00c8 possibile utilizzare qualsiasi sistema di gestione dei database, ma questo tutorial utilizza MariaDB, che ha una connessione con Laravel simile a quella di MySQL. La configurazione di Laravel \u00e8 la stessa in entrambi i database.<\/p>\n<\/aside>\n\n<h2>Creare un nuovo progetto Laravel<\/h2>\n<p>Ora potete iniziare a creare il blog utilizzando Laravel. Per questo tutorial abbiamo utilizzato un computer con sistema operativo Windows.<\/p>\n<ol start=\"1\">\n<li>Andate al terminale o all&#8217;interfaccia a riga di comando (CLI) del computer.<\/li>\n<li>Create un progetto Laravel chiamato <strong>blog<\/strong> utilizzando il comando <code>laravel new blog<\/code>.<\/li>\n<li>Aprite la directory <strong>blog<\/strong> del progetto con il comando <code>cd blog<\/code>.<\/li>\n<li>Quindi, aprite la cartella nell&#8217;editor di codice.<\/li>\n<li>Per verificare che il progetto sia stato creato correttamente, eseguite <code>php artisan serve<\/code> nel terminale o CMD.<\/li>\n<li>Cliccate sull&#8217;indirizzo di output locale per inviarlo al browser. Il browser dovrebbe visualizzare la pagina di benvenuto predefinita di Laravel, mostrata qui sotto:<\/li>\n<\/ol>\n<figure style=\"width: 1279px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-welcome.png\" alt=\"Pagina di benvenuto di Laravel quando viene servita al browser\" width=\"1279\" height=\"801\"><figcaption class=\"wp-caption-text\">Pagina di benvenuto di Laravel<\/figcaption><\/figure>\n<h3>Configurare il database<\/h3>\n<p>Create e configurate il database tornando a <strong>phpMyAdmin<\/strong> nel browser e creando un database chiamato <strong>blog<\/strong>.<\/p>\n<ol start=\"1\">\n<li>Per creare il database, nella scheda <strong>Database<\/strong>, digitate &#8220;blog&#8221; nel campo <strong>Create database<\/strong>.<\/li>\n<li>Quindi, cliccate su <strong>Create<\/strong>.<\/li>\n<\/ol>\n<figure style=\"width: 1042px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/phpmyadmin-create-database.png\" alt=\"Creazione del database nel pannello di phpMyAdmin\" width=\"1042\" height=\"312\"><figcaption class=\"wp-caption-text\">Creazione del database nel pannello di phpMyAdmin<\/figcaption><\/figure>\n<ol start=\"3\">\n<li>Successivamente, aggiornate la connessione al database nel file <strong>.env<\/strong> nella root del progetto del blog. Cambiate i valori <code>DB_DATABASE<\/code> e <code>DB_PASSWORD<\/code> con quelli creati.<\/li>\n<\/ol>\n<p>I dettagli della connessione dovrebbero assomigliare a questi:<\/p>\n<pre><code class=\"language-markdown\">DB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=blog\nDB_USERNAME=your-db-username\nDB_PASSWORD=your-db-password<\/code><\/pre>\n<p>Gli altri dettagli della connessione al database rimangono invariati rispetto al file <strong>.env<\/strong>. Se durante la configurazione modificate qualche valore di connessione, ad esempio cambiando <code>DB_PORT<\/code> da 3306 a 3307, assicuratevi di aggiornarlo nel file <strong>.env<\/strong>.<\/p>\n<h3>Creare la tabella dei post<\/h3>\n<p>Successivamente, create un modello di database e migrate le modifiche.<\/p>\n<ol start=\"1\">\n<li>Nel terminale, eseguite <code>php artisan make:model Post -mc<\/code> per creare un modello chiamato <strong>Post<\/strong>, una tabella chiamata <strong>posts<\/strong>, un file di migrazione e un controller.<\/li>\n<\/ol>\n<figure style=\"width: 1154px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/terminal-php-artisan-make-model.png\" alt=\"Creazione di un modello, di un file di migrazione e di un controllore tramite la riga di comando.\" width=\"1154\" height=\"140\"><figcaption class=\"wp-caption-text\">Creare un modello, un file di migrazione e un controllore tramite la riga di comando.<\/figcaption><\/figure>\n<ol start=\"2\">\n<li>Controllate la directory <strong>database\/migrations<\/strong> e aprite il file di migrazione appena creato. Il suo formato \u00e8 il seguente: <code>YYYY_MM_DD_ID_create_posts_table.php<\/code>.<\/li>\n<li>Nel metodo <code>up()<\/code> del file di migrazione, create uno schema con gli attributi <code>title<\/code>, <code>description<\/code> e <code>image<\/code>.<\/li>\n<\/ol>\n<pre><code class=\"language-php\">public function up() {\n  Schema::create('posts', function (Blueprint $table) {\n    $table-&gt;id();\n    $table-&gt;string('title')-&gt;nullable();\n    $table-&gt;text('description')-&gt;nullable();\n    $table-&gt;string('image')-&gt;nullable();\n    $table-&gt;timestamps();\n  });\n}<\/code><\/pre>\n<ol start=\"4\">\n<li>Ora andate al terminale e migrate le modifiche utilizzando <code>php artisan migrate<\/code>, come mostrato di seguito:<\/li>\n<\/ol>\n<figure style=\"width: 1200px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/terminal-php-artisan-migrate.png\" alt=\"Migrazione del database di Laravel\" width=\"1200\" height=\"224\"><figcaption class=\"wp-caption-text\">Migrazione del database di Laravel<\/figcaption><\/figure>\n<ol start=\"5\">\n<li>Andate su <strong>phpMyAdmin<\/strong> nel browser e vedrete la tabella dei <strong>post<\/strong>:<\/li>\n<\/ol>\n<figure style=\"width: 990px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/phpmyadmin-posts-table.png\" alt=\"La tabella dei post migrata viene visualizzata in phpMyAdmin\" width=\"990\" height=\"315\"><figcaption class=\"wp-caption-text\">La tabella dei post migrata viene visualizzata in phpMyAdmin<\/figcaption><\/figure>\n<h3>Come creare i controllori<\/h3>\n<p>L&#8217;aggiunta di viste e controllori implementa la logica di business per l&#8217;insieme di database. Le viste sono le interfacce utente che visualizzano gli oggetti del modello. I controllori gestiscono il flusso di esecuzione dei dati tra il modello e le viste.<\/p>\n<ol start=\"1\">\n<li>Prima di creare i file Blade, eseguite <code>npm install<\/code>, seguito da <code>npm run dev<\/code> nel terminale. Il primo comando installa i pacchetti npm necessari. Il secondo comando avvia un server di sviluppo Vite.<\/li>\n<li>Andate alla cartella <strong>app\/Http\/Controllers<\/strong>, aprite il file <strong>PostController.php<\/strong> e create un metodo controller <code>index<\/code>. Il metodo controller renderizza un semplice testo al browser. Per farlo, aggiungete il seguente codice alla classe <code>PostController<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-php\">public function index() {\n  $post = \"Laravel Tutorial Series One!\";\n  return view('posts.index', ['post'=&gt;$post]);\n}<\/code><\/pre>\n<p>Questo metodo passa <code>$post<\/code> come variabile di contesto alla sezione <code>views<\/code> del template index Blade. <code>$post<\/code> contiene il testo da visualizzare che, in questo caso, dice: &#8220;Laravel Tutorial Series One!&#8221;. Sostituirete questo testo con il ciclo dei post pi\u00f9 avanti.<\/p>\n<ol start=\"3\">\n<li>Create due nuove directory nella cartella<strong> resources\/views<\/strong>: <strong>layouts <\/strong>e <strong>posts<\/strong>.<\/li>\n<li>All&#8217;interno della directory <strong>layouts<\/strong>, create un file <strong>app.blade.php<\/strong>. Gli altri file Blade erediteranno le caratteristiche da questo.<\/li>\n<li>Copiate questo codice in <strong>app.blade.php<\/strong>:<\/li>\n<\/ol>\n<pre class=\"language-php\"><code class=\"language-php\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"{{ str_replace('_', '-', app()-&gt;getLocale()) }}\"&gt;\n\n&lt;head&gt;\n  &lt;meta charset=\"utf-8\"&gt;\n  &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"&gt;\n  &lt;title&gt;Blog&lt;\/title&gt;\n  &lt;!-- Styles \u2192\n  &lt;link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.2.3\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\" integrity=\"sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65\" crossorigin=\"anonymous\"&gt;\n  @vite(['resources\/css\/app.css', 'resources\/js\/app.js'])\n&lt;\/head&gt;\n\n&lt;!-- Navbar \u2192\n&lt;header&gt;\n  &lt;nav class=\"navbar bg-primary\"&gt;\n    &lt;div class=\"container-fluid\"&gt;\n      &lt;a class=\"navbar-brand\" href=\"{{ route('posts.index') }}\"&gt;Mini-Blog&lt;\/a&gt;\n    &lt;\/div&gt;\n  &lt;\/nav&gt;\n&lt;\/header&gt;\n\n&lt;!-- Body --&gt;\n&lt;body&gt;\n  @yield('content')\n&lt;\/body&gt;\n\n&lt;!-- Footer --&gt;\n&lt;footer class=\"footer mt-auto py-3 bg-dark\"&gt;\n  &lt;div class=\"container d-lg-flex justify-content-between\"&gt;\n    &lt;span class=\"text-light\"&gt;Mini-Blog \u00a9 2023&lt;\/span&gt;\n  &lt;\/div&gt;\n&lt;\/footer&gt;\n\n&lt;script src=\"https:\/\/cdn.jsdelivr.net\/npm\/sweetalert2@11\"&gt;&lt;\/script&gt;\n&lt;script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.2.3\/dist\/js\/bootstrap.bundle.min.js\"  integrity=\"sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK\/7HAuoJl+0I4\" crossorigin=\"anonymous\"&gt;&lt;\/script&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<pre class=\"language-php\"><code class=\"language-php\"><\/code><\/pre>\n<p>Utilizzando questo codice HTML, importate Bootstrap versione 5.2.3 e Vite per raggruppare le risorse JavaScript e CSS. La pagina generata ha un header con una navbar e un footer con gli script chiamati sotto di essa. Nel corpo, i contenuti dinamici vengono resi da altri file Blade con l&#8217;aiuto di <code>@yield('content')<\/code>.<\/p>\n<p>La directory <strong>posts<\/strong> contiene i file Blade per implementare le operazioni di creazione e lettura.<\/p>\n<ol start=\"6\">\n<li>All&#8217;interno della cartella <strong>posts<\/strong>, create un file Blade chiamato <strong>index.blade.php<\/strong> e aggiungete il seguente codice:<\/li>\n<\/ol>\n<pre><code class=\"language-php\">@extends('layouts.app')\n@section('content')\n&lt;div class=\"container\"&gt;\n  &lt;div class=\"titlebar\"&gt;\n    &lt;h1&gt;Blog list&lt;\/h1&gt;\n  &lt;\/div&gt;\n  &lt;hr&gt;\n  &lt;p&gt;The Blog 1 - {{ $post }}&lt;\/p&gt;\n&lt;\/div&gt;\n@endsection<\/code><\/pre>\n<p>Questo codice si estende dal file <strong>app.blade.php<\/strong> nella pagina dei layout. Quando viene visualizzato nel browser, mostra il contenuto di ogni post del blog e la barra di navigazione e il footer ereditati dal file <strong>app.blade.php<\/strong> nella cartella <strong>layouts<\/strong>. Tra i tag di sezione, passate il contenuto del controller da renderizzare nel browser quando eseguite l&#8217;applicazione.<\/p>\n<ol start=\"7\">\n<li>Impostate il percorso nella cartella <strong>routes<\/strong>. L&#8217;impostazione della route consente il caricamento automatico da parte di <code>RouteServiceProvider<\/code> nella cartella <strong>App\/Providers<\/strong>. <code>RouteServiceProvider<\/code> \u00e8 la classe responsabile del caricamento dei file di route dell&#8217;applicazione.<\/li>\n<li>All&#8217;interno del file <strong>routes\/web.php<\/strong>, importate <strong>PostController<\/strong> utilizzando <code>use AppHttpControllersPostController<\/code>.<\/li>\n<li>Quindi, impostate la route aggiungendo <code>Route::resource('posts', PostController::class);<\/code> al file <strong>routes\/web.php<\/strong>.<\/li>\n<li>Con il server di sviluppo Vite ancora in funzione, usate <code>php artisan serve<\/code> per eseguire l&#8217;applicazione nel terminale.<\/li>\n<li>Con il browser, aprite <code>http:\/\/127.0.0.1:8000\/posts<\/code> per vedere l&#8217;elenco dei post del blog.<\/li>\n<\/ol>\n<p>La pagina dovrebbe avere il seguente aspetto:<\/p>\n<figure style=\"width: 1280px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-blog-list-preview.png\" alt=\"L'applicazione blog viene visualizzata nel browser\" width=\"1280\" height=\"267\"><figcaption class=\"wp-caption-text\">L&#8217;applicazione del blog viene visualizzata nel browser<\/figcaption><\/figure>\n<p>Nella prossima sezione, definiremo i metodi del controller per visualizzare tutti i post, creare un post e memorizzare un post. Quindi, aggiungeremo le route e creeremo i file Blade nelle sezioni corrispondenti.<\/p>\n<h2>Creare la pagina dei post del blog<\/h2>\n<p>Create i post del blog inserendo un titolo, aggiungendo una descrizione e caricando un&#8217;immagine. Poi, visualizzate i post in ordine sequenziale.<\/p>\n<ol start=\"1\">\n<li>Nella cartella <strong>app\/Models<\/strong>, aprite il file <strong>Post.php<\/strong>.<\/li>\n<li>Nella classe <code>Post<\/code>, sotto il blocco di codice <code>use HasFactory;<\/code>, aggiungete <code>protected $fillable = ['title', 'description', 'image'];<\/code>.<\/li>\n<\/ol>\n<p>Questo codice protegge gli attributi del modello dalle assegnazioni di massa.<\/p>\n<ol start=\"3\">\n<li>Nel file <strong>app\/Http\/Controllers\/PostController.php<\/strong>, importate il modello <code>Post<\/code> usando <code>use AppModelsPost;<\/code>.<\/li>\n<li>Sostituite i metodi del controllore <code>index<\/code> e <code>create<\/code> creati in precedenza nella classe <code>PostController<\/code> con il codice seguente:<\/li>\n<\/ol>\n<pre><code class=\"language-php\">\/\/ Show all posts\npublic function index() {\n  $posts = Post::orderBy('created_at', 'desc')-&gt;get();\n  return view('posts.index', ['posts' =&gt; $posts]);\n}\n    \n\/\/ Create post\npublic function create() {\n  return view('posts.create');\n}<\/code><\/pre>\n<p>Nel metodo <code>index<\/code> appena creato, l&#8217;applicazione PHP recupera tutti i post, li mette in ordine cronologico e poi li memorizza in una variabile <code>posts<\/code>. Nella vista di ritorno, i post passano nel file <strong>index.blade.php<\/strong> come variabile di contesto nella directory <strong>views\/posts<\/strong>. Il metodo <code>create<\/code> restituisce un file <strong>create.blade.php<\/strong> e lo inserisce nella cartella <strong>views\/posts<\/strong> se un utente cerca di creare un nuovo post.<\/p>\n<ol start=\"5\">\n<li>Create un metodo di controllo <code>store<\/code> utilizzando il codice seguente (per memorizzare i post del blog nel database). Aggiungete questo codice alla classe <code>PostController<\/code> sotto i metodi di controllo <code>index<\/code> e <code>create<\/code>.<\/li>\n<\/ol>\n<pre><code class=\"language-php\">\/\/ Store post\npublic function store(Request $request) {\n  \/\/ validations\n  $request-&gt;validate([\n    'title' =&gt; 'required',\n    'description' =&gt; 'required',\n    'image' =&gt; 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',\n  ]);\n\n  $post = new Post;\n\n  $file_name = time() . '.' . request()-&gt;image-&gt;getClientOriginalExtension();\n  request()-&gt;image-&gt;move(public_path('images'), $file_name);\n\n  $post-&gt;title = $request-&gt;title;\n  $post-&gt;description = $request-&gt;description;\n  $post-&gt;image = $file_name;\n\n  $post-&gt;save();\n  return redirect()-&gt;route('posts.index')-&gt;with('success', 'Post created successfully.');\n}<\/code><\/pre>\n<p>Il metodo <code>store<\/code> gestisce le richieste del client relative ai dati contenuti nel suo corpo, quindi prende <code>request<\/code> come argomento. Successivamente, convalida i campi utilizzati per la creazione di un post e crea un&#8217;istanza <code>post<\/code> dal modello <code>Post<\/code>. I dati dei campi inseriti vengono assegnati all&#8217;istanza creata e salvati. La pagina viene reindirizzata alla vista <code>index<\/code> con un testo flash che dice: &#8220;Post creato con successo&#8221;.<\/p>\n<h3>Aggiungere le route ai post<\/h3>\n<p>Per registrare i percorsi nel file <strong>web.php<\/strong>:<\/p>\n<ol start=\"1\">\n<li>Nella cartella <strong>routes<\/strong> della root del progetto, aprite il file <strong>web.php<\/strong>.<\/li>\n<li>Registrate i percorsi dei metodi del controller sostituendo il codice esistente con questo:<\/li>\n<\/ol>\n<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token php language-php\"><span class=\"token delimiter important\">&lt;?php<\/span>\n\n<span class=\"token keyword\">use<\/span> <span class=\"token package\">Illuminate<span class=\"token punctuation\">\\<\/span>Support<span class=\"token punctuation\">\\<\/span>Facades<span class=\"token punctuation\">\\<\/span>Route<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">use<\/span> <span class=\"token package\">App<span class=\"token punctuation\">\\<\/span>Http<span class=\"token punctuation\">\\<\/span>Controllers<span class=\"token punctuation\">\\<\/span>PostController<\/span><span class=\"token punctuation\">;<\/span>\n\n<span class=\"token class-name static-context\">Route<\/span><span class=\"token operator\">::<\/span><span class=\"token function\">resource<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string single-quoted-string\">'\/'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name static-context\">PostController<\/span><span class=\"token operator\">::<\/span><span class=\"token keyword\">class<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">-&gt;<\/span><span class=\"token function\">names<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span>\n  <span class=\"token string single-quoted-string\">'index'<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token string single-quoted-string\">'posts.index'<\/span><span class=\"token punctuation\">,<\/span>\n  <span class=\"token string single-quoted-string\">'create'<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token string single-quoted-string\">'posts.create'<\/span><span class=\"token punctuation\">,<\/span>\n  <span class=\"token string single-quoted-string\">'store'<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token string single-quoted-string\">'posts.store'<\/span><span class=\"token punctuation\">,<\/span>\n  <span class=\"token string single-quoted-string\">'show'<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token string single-quoted-string\">'posts.show'<\/span><span class=\"token punctuation\">,<\/span>\n<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/span><\/code><\/pre>\n<p>Questo controller utilizza queste route per creare, memorizzare e visualizzare gli oggetti dati.<\/p>\n<h3>Creare i file Blade<\/h3>\n<p>Per creare le viste, tornate alla classe <code>PostController<\/code>:<\/p>\n<ol start=\"1\">\n<li>Nella cartella <strong>resources\/views\/posts<\/strong>, create un file Blade chiamato <strong>create.blade.php<\/strong> e aggiungete il codice seguente:<\/li>\n<\/ol>\n<pre class=\"language-php\"><code class=\"language-php\">@<span class=\"token keyword\">extends<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string single-quoted-string\">'layouts.app'<\/span><span class=\"token punctuation\">)<\/span>\n@<span class=\"token function\">section<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string single-quoted-string\">'content'<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token operator\">&lt;<\/span>div <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"container\"<\/span><span class=\"token operator\">&gt;<\/span>\n  <span class=\"token operator\">&lt;<\/span>h1<span class=\"token operator\">&gt;<\/span>Add Post<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>h1<span class=\"token operator\">&gt;<\/span>\n  <span class=\"token operator\">&lt;<\/span>section <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"mt-3\"<\/span><span class=\"token operator\">&gt;<\/span>\n    <span class=\"token operator\">&lt;<\/span>form method<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"post\"<\/span> action<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"{{ route('posts.store') }}\"<\/span> enctype<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"multipart\/form-data\"<\/span><span class=\"token operator\">&gt;<\/span>\n      @csrf\n      <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">!<\/span><span class=\"token operator\">--<\/span> Error message when data is not inputted <span class=\"token operator\">--<\/span><span class=\"token operator\">&gt;<\/span>\n      @<span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token variable\">$errors<\/span><span class=\"token operator\">-&gt;<\/span><span class=\"token function\">any<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token operator\">&lt;<\/span>div <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"alert alert-danger\"<\/span><span class=\"token operator\">&gt;<\/span>\n          <span class=\"token operator\">&lt;<\/span>ul<span class=\"token operator\">&gt;<\/span>\n            @<span class=\"token keyword\">foreach<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token variable\">$errors<\/span><span class=\"token operator\">-&gt;<\/span><span class=\"token function\">all<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> <span class=\"token variable\">$error<\/span><span class=\"token punctuation\">)<\/span>\n              <span class=\"token operator\">&lt;<\/span>li<span class=\"token operator\">&gt;<\/span><span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">{<\/span> <span class=\"token variable\">$error<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">}<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>li<span class=\"token operator\">&gt;<\/span>\n            @<span class=\"token keyword\">endforeach<\/span>\n          <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>ul<span class=\"token operator\">&gt;<\/span>\n        <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>div<span class=\"token operator\">&gt;<\/span>\n      @<span class=\"token keyword\">endif<\/span>\n      <span class=\"token operator\">&lt;<\/span>div <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"card p-3\"<\/span><span class=\"token operator\">&gt;<\/span>\n        <span class=\"token operator\">&lt;<\/span>label <span class=\"token keyword\">for<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"floatingInput\"<\/span><span class=\"token operator\">&gt;<\/span>Title<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>label<span class=\"token operator\">&gt;<\/span>\n        <span class=\"token operator\">&lt;<\/span>input <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"form-control\"<\/span> type<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"text\"<\/span> name<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"title\"<\/span><span class=\"token operator\">&gt;<\/span>\n        <span class=\"token operator\">&lt;<\/span>label <span class=\"token keyword\">for<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"floatingTextArea\"<\/span><span class=\"token operator\">&gt;<\/span>Description<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>label<span class=\"token operator\">&gt;<\/span>\n        <span class=\"token operator\">&lt;<\/span>textarea <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"form-control\"<\/span> name<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"description\"<\/span> id<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"floatingTextarea\"<\/span> cols<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"30\"<\/span> rows<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"10\"<\/span><span class=\"token operator\">&gt;<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>textarea<span class=\"token operator\">&gt;<\/span>\n        <span class=\"token operator\">&lt;<\/span>label <span class=\"token keyword\">for<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"formFile\"<\/span> <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"form-label\"<\/span><span class=\"token operator\">&gt;<\/span>Add Image<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>label<span class=\"token operator\">&gt;<\/span>\n        <span class=\"token operator\">&lt;<\/span>img src<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"\"<\/span> alt<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"\"<\/span> <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"img-blog\"<\/span><span class=\"token operator\">&gt;<\/span>\n        <span class=\"token operator\">&lt;<\/span>input <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"form-control\"<\/span> type<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"file\"<\/span> name<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"image\"<\/span><span class=\"token operator\">&gt;<\/span>\n      <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>div<span class=\"token operator\">&gt;<\/span>\n      <span class=\"token operator\">&lt;<\/span>button <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"btn btn-secondary m-3\"<\/span><span class=\"token operator\">&gt;<\/span>Save<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>button<span class=\"token operator\">&gt;<\/span>\n    <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>form<span class=\"token operator\">&gt;<\/span>\n  <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>section<span class=\"token operator\">&gt;<\/span>\n    \n<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>div<span class=\"token operator\">&gt;<\/span>\n@endsection<\/code><\/pre>\n<p>In questo codice, <strong>create.blade.php<\/strong> eredita i contenuti di <strong>app.blade.php<\/strong> nella cartella <strong>layouts<\/strong> utilizzando <code>@extends('layouts.app')<\/code>. Questi contenuti includono un header, una barra di navigazione e un footer. Dopo aver aggiunto il testo <code>Add Post<\/code> all&#8217;interno del tag <code>h1<\/code>, avrete creato un modulo con il metodo <code>post<\/code> che contiene l&#8217;azione <code>{{route('posts.store')}}<\/code>.<\/p>\n<p>Il codice <code>enctype=\"multipart\/form-data\"<\/code> consente il caricamento di immagini e <code>csrf<\/code> protegge il modulo dagli attacchi cross-site. Poi, i messaggi di errore visualizzano le voci di campo non valide e utilizzano<code>field attributes<\/code> per creare etichette e input per il modulo.<\/p>\n<ol start=\"2\">\n<li>Ora sostituite il codice del file <strong>index.blade.php<\/strong> con il codice seguente per visualizzare tutti i post del blog:<\/li>\n<\/ol>\n<pre class=\"language-php\"><code class=\"language-php\">@<span class=\"token keyword\">extends<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string single-quoted-string\">'layouts.app'<\/span><span class=\"token punctuation\">)<\/span>\n@<span class=\"token function\">section<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string single-quoted-string\">'content'<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token operator\">&lt;<\/span>div <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"container\"<\/span><span class=\"token operator\">&gt;<\/span>\n  <span class=\"token operator\">&lt;<\/span>div <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"titlebar\"<\/span><span class=\"token operator\">&gt;<\/span>\n    <span class=\"token operator\">&lt;<\/span>a <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"btn btn-secondary float-end mt-3\"<\/span> href<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"{{ route('posts.create') }}\"<\/span> role<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"button\"<\/span><span class=\"token operator\">&gt;<\/span>Add Post<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>a<span class=\"token operator\">&gt;<\/span>\n    <span class=\"token operator\">&lt;<\/span>h1<span class=\"token operator\">&gt;<\/span>Mini post <span class=\"token keyword\">list<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>h1<span class=\"token operator\">&gt;<\/span>\n  <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>div<span class=\"token operator\">&gt;<\/span>\n    \n  <span class=\"token operator\">&lt;<\/span>hr<span class=\"token operator\">&gt;<\/span>\n  <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">!<\/span><span class=\"token operator\">--<\/span> Message <span class=\"token keyword\">if<\/span> a post is posted successfully <span class=\"token operator\">--<\/span><span class=\"token operator\">&gt;<\/span>\n  @<span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token variable\">$message<\/span> <span class=\"token operator\">=<\/span> <span class=\"token class-name static-context\">Session<\/span><span class=\"token operator\">::<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string single-quoted-string\">'success'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span>\n  <span class=\"token operator\">&lt;<\/span>div <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"alert alert-success\"<\/span><span class=\"token operator\">&gt;<\/span>\n    <span class=\"token operator\">&lt;<\/span>p<span class=\"token operator\">&gt;<\/span><span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">{<\/span> <span class=\"token variable\">$message<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">}<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>p<span class=\"token operator\">&gt;<\/span>\n  <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>div<span class=\"token operator\">&gt;<\/span>\n  @<span class=\"token keyword\">endif<\/span>\n         @<span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token function\">count<\/span><span class=\"token punctuation\">(<\/span><span class=\"token variable\">$posts<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span>\n    @<span class=\"token keyword\">foreach<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token variable\">$posts<\/span> <span class=\"token keyword\">as<\/span> <span class=\"token variable\">$post<\/span><span class=\"token punctuation\">)<\/span>\n      <span class=\"token operator\">&lt;<\/span>div <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"row\"<\/span><span class=\"token operator\">&gt;<\/span>\n        <span class=\"token operator\">&lt;<\/span>div <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"col-12\"<\/span><span class=\"token operator\">&gt;<\/span>\n          <span class=\"token operator\">&lt;<\/span>div <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"row\"<\/span><span class=\"token operator\">&gt;<\/span>\n            <span class=\"token operator\">&lt;<\/span>div <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"col-2\"<\/span><span class=\"token operator\">&gt;<\/span>\n              <span class=\"token operator\">&lt;<\/span>img <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"img-fluid\"<\/span> style<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"max-width:50%;\"<\/span> src<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"{{ asset('images\/'.<span class=\"token interpolation\"><span class=\"token variable\">$post<\/span><span class=\"token operator\">-&gt;<\/span><span class=\"token property\">image<\/span><\/span>)}}\"<\/span> alt<span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"\"<\/span><span class=\"token operator\">&gt;<\/span>\n            <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>div<span class=\"token operator\">&gt;<\/span>\n            <span class=\"token operator\">&lt;<\/span>div <span class=\"token keyword\">class<\/span><span class=\"token operator\">=<\/span><span class=\"token string double-quoted-string\">\"col-10\"<\/span><span class=\"token operator\">&gt;<\/span>\n              <span class=\"token operator\">&lt;<\/span>h4<span class=\"token operator\">&gt;<\/span><span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">{<\/span><span class=\"token variable\">$post<\/span><span class=\"token operator\">-&gt;<\/span><span class=\"token property\">title<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">}<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>h4<span class=\"token operator\">&gt;<\/span>\n            <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>div<span class=\"token operator\">&gt;<\/span>\n          <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>div<span class=\"token operator\">&gt;<\/span>\n          <span class=\"token operator\">&lt;<\/span>p<span class=\"token operator\">&gt;<\/span><span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">{<\/span><span class=\"token variable\">$post<\/span><span class=\"token operator\">-&gt;<\/span><span class=\"token property\">description<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">}<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>p<span class=\"token operator\">&gt;<\/span>\n          <span class=\"token operator\">&lt;<\/span>hr<span class=\"token operator\">&gt;<\/span>\n        <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>div<span class=\"token operator\">&gt;<\/span>\n      <span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>div<span class=\"token operator\">&gt;<\/span>\n    @<span class=\"token keyword\">endforeach<\/span>\n  @<span class=\"token keyword\">else<\/span>\n    <span class=\"token operator\">&lt;<\/span>p<span class=\"token operator\">&gt;<\/span>No Posts found<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>p<span class=\"token operator\">&gt;<\/span>\n  @<span class=\"token keyword\">endif<\/span>\n<span class=\"token operator\">&lt;<\/span><span class=\"token operator\">\/<\/span>div<span class=\"token operator\">&gt;<\/span>\n@endsection<\/code><\/pre>\n<p>Questo codice aggiunge un pulsante <strong>Add post<\/strong>. Quando viene cliccato, crea un post e passa tutti i dati nel corpo della pagina. La condizione <code>if<\/code> controlla se ci sono dati nel database. Se ci sono dati, passa. In caso contrario, viene visualizzato &#8220;Nessun post trovato&#8221;.<\/p>\n<h3>Strutturare le pagine<\/h3>\n<p>Ora potete eseguire l&#8217;applicazione utilizzando <code>php artisan serve<\/code> per creare e visualizzare i post del blog. Aprite <code>&lt;a href=\"http:\/\/127.0.0.1:8000\"&gt;http:\/\/127.0.0.1:8000&lt;\/a &gt;<\/code> e la pagina dovrebbe avere questo aspetto:<\/p>\n<figure style=\"width: 1343px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/list-preview-no-posts.png\" alt=\"L'applicazione blog appare nel browser\" width=\"1343\" height=\"350\"><figcaption class=\"wp-caption-text\">L&#8217;applicazione blog appare nel browser<\/figcaption><\/figure>\n<p>Se aggiungete un post, viene visualizzato in questo modo:<\/p>\n<figure style=\"width: 1359px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/preview-post.png\" alt=\"L'applicazione blog mostra un post nel browser\" width=\"1359\" height=\"641\"><figcaption class=\"wp-caption-text\">L&#8217;applicazione blog mostra un post nel browser<\/figcaption><\/figure>\n<h2>Distribuire il blog Laravel su Kinsta<\/h2>\n<p>Per distribuire e testare l&#8217;applicazione Laravel utilizzando <a href=\"https:\/\/sevalla.com\/application-hosting\/\">il servizio di Hosting di Applicazioni di Kinsta<\/a>:<\/p>\n<ol start=\"1\">\n<li>Create un file <strong>.htaccess<\/strong>.<\/li>\n<li>Inviate il codice a un repository.<\/li>\n<li>Create un database.<\/li>\n<li>Create un progetto su MyKinsta.<\/li>\n<li>Create e distribuite il blog.<\/li>\n<\/ol>\n<h3>Creare un file .htaccess<\/h3>\n<p>Nella cartella principale del progetto, create un file chiamato <strong>.htaccess<\/strong> e aggiungete il seguente codice:<\/p>\n<pre><code class=\"language-apacheconf\">&lt;IfModule mod_rewrite.c&gt;\n  RewriteEngine On\n  RewriteRule ^(.*)$ public\/$1 [L]\n&lt;\/IfModule&gt;<\/code><\/pre>\n<p>Questo codice reindirizza le richieste dell&#8217;applicazione a <strong>public\/index.php<\/strong> nella distribuzione.<\/p>\n<h3>Eseguire il push del codice in un repository<\/h3>\n<p>Create un repository per il progetto e pubblicate il codice. Potete utilizzare GitHub, GitLab o Bitbucket per ospitare il codice e distribuirlo su <a href=\"https:\/\/my.kinsta.com\/login?lang=it\">MyKinsta<\/a>.<\/p>\n<h3>Configurare il database nella dashboard di MyKinsta<\/h3>\n<p>Per creare un database su MyKinsta:<\/p>\n<ol start=\"1\">\n<li>Cliccate sul pulsante <strong>Aggiungi servizio<\/strong> e selezionate <strong>Database<\/strong>.<\/li>\n<li>Inserite i dettagli del database come mostrato di seguito. Affinch\u00e9 l&#8217;installazione vada a buon fine, dovete lasciare il <strong>nome utente<\/strong>\u00a0del\u00a0<strong>database<\/strong>\u00a0come valore predefinito.<\/li>\n<\/ol>\n<figure style=\"width: 1136px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/mykinsta-create-database.png\" alt=\"Creare un database in MyKinsta\" width=\"1136\" height=\"739\"><figcaption class=\"wp-caption-text\">Creare un database in MyKinsta<\/figcaption><\/figure>\n<p>I dettagli includono il <strong>nome del database<\/strong>, il <strong>nome visualizzato<\/strong>, il <strong>tipo di database<\/strong>, la <strong>versione<\/strong>, il <strong>nome utente del database<\/strong>, la <strong>posizione del data center<\/strong> e la <strong>dimensione<\/strong>. Questa dimostrazione utilizza MariaDB per il database e la <strong>dimensione<\/strong> \u00e8 <strong>Db3 (1CPU \/ 4GB RAM \/ 10GB Spazio su disco 65 USD \/ mese)<\/strong>. \u00c8 possibile scegliere il tipo di database e le dimensioni pi\u00f9 adatte alle proprie esigenze specifiche.<\/p>\n<ol start=\"3\">\n<li>Cliccate su <strong>Continua<\/strong>.<\/li>\n<li>Confermate il costo mensile e il metodo di pagamento, quindi cliccate su <strong>Crea database<\/strong>.<\/li>\n<\/ol>\n<h3>Configurare il progetto su MyKinsta<\/h3>\n<p>Per distribuire l&#8217;applicazione su MyKinsta:<\/p>\n<ol start=\"1\">\n<li>Cliccate sul pulsante <strong>Cruscotto<\/strong>.<\/li>\n<li>Cliccate su <strong>Aggiungi servizio<\/strong> e selezionate <strong>Applicazione<\/strong>, come mostrato di seguito:<\/li>\n<\/ol>\n<figure style=\"width: 1399px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/mykinsta-create-app.png\" alt=\"Cruscotto di MyKinsta quando si aggiunge un servizio di applicazione\" width=\"1399\" height=\"493\"><figcaption class=\"wp-caption-text\">Cruscotto di MyKinsta quando si aggiunge un servizio di applicazione<\/figcaption><\/figure>\n<p>MyKinsta vi reindirizza alla pagina <strong>Aggiungi applicazione<\/strong>.<\/p>\n<ol start=\"1\">\n<li>Nella sezione <strong>Seleziona branch<\/strong>, selezionate il vostro repository GitHub, quindi selezionate la casella <strong>Aggiungi distribuzione su commit<\/strong>.<\/li>\n<li>Nei <strong>dettagli di base<\/strong>, inserite il nome dell&#8217;applicazione e selezionate la posizione del data center per l&#8217;applicazione.<\/li>\n<li>Poich\u00e9 Laravel ha bisogno di una chiave per l&#8217;applicazione durante la distribuzione, nella scheda <strong>Variabili d&#8217;ambiente<\/strong>, aggiungete una <strong>APP_KEY<\/strong> come Chiave 1. Potete utilizzare <strong>APP_KEY<\/strong> definita nel file <strong>.env<\/strong> locale o utilizzare un <a href=\"https:\/\/generate-random.org\/laravel-key-generator?count=1\">generatore di chiavi Laravel online<\/a> per ottenerne una.<\/li>\n<li>Cliccate su <strong>Continua<\/strong>.<\/li>\n<li>Selezionate le risorse di build (CPU e RAM) per l&#8217;applicazione. Questa dimostrazione utilizza la <strong>build machine standard (1CPU \/ 4 GB di RAM) &#8211; 0,02USD \/ minuto<\/strong>.<\/li>\n<li>Lasciate selezionato il pulsante di opzione <strong>Imposta automaticamente l&#8217;immagine del container<\/strong>.<\/li>\n<li>Cliccate su <strong>Continua<\/strong>.<\/li>\n<li>Nella pagina <strong>Imposta i processi<\/strong>, \u00e8 possibile modificare le dimensioni del pod e l&#8217;istanza dell&#8217;applicazione selezionando queste caselle. Questa dimostrazione utilizza i valori predefiniti.<\/li>\n<li>Cliccate su <strong>Continua<\/strong>.<\/li>\n<li>Infine, cliccate sul pulsante <strong>Conferma il metodo di pagamento<\/strong> per avviare la distribuzione dell&#8217;applicazione. Cliccando su questo pulsante verrete indirizzati alla pagina dei <strong>dettagli della distribuzione<\/strong> per vedere l&#8217;avanzamento dell&#8217;installazione.<\/li>\n<\/ol>\n<h3>Creare e distribuire l&#8217;applicazione<\/h3>\n<p>Dopo aver ospitato il database e l&#8217;applicazione, collegate il database all&#8217;applicazione ed eseguite la build per distribuire.<\/p>\n<p>Per collegare il database, usate le connessioni esterne del database ospitato. Nella scheda <strong>Info<\/strong> del database ospitato, \u00e8 presente la voce <strong>Connessioni esterne<\/strong>, come mostrato di seguito:<\/p>\n<figure style=\"width: 1120px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/mykinsta-db-external-connections.png\" alt=\"Connessioni esterne del database ospitato\" width=\"1120\" height=\"498\"><figcaption class=\"wp-caption-text\">Connessioni esterne del database ospitato<\/figcaption><\/figure>\n<ol start=\"1\">\n<li>Nella pagina <strong>Impostazioni<\/strong> dell&#8217;applicazione distribuita, andate alla scheda <strong>Variabile d&#8217;ambiente<\/strong>.<\/li>\n<li>Cliccate su <strong>Aggiungi variabile d&#8217;ambiente<\/strong> per aggiungere le connessioni esterne del database ospitato con il valore corrispondente. Usate le stesse variabili che avete nel file <strong>.env<\/strong>.<\/li>\n<\/ol>\n<figure style=\"width: 1107px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/mykinsta-app-env-variables.png\" alt=\"Le variabili d'ambiente per il database ospitato\" width=\"1107\" height=\"700\"><figcaption class=\"wp-caption-text\">Le variabili d&#8217;ambiente per il database ospitato<\/figcaption><\/figure>\n<p>Questa schermata \u00e8 utile per contrassegnare le variabili &lt;code&gt;env&lt;\/code&gt; che avrete modificato manualmente per distinguerle dalle altre.<\/p>\n<p><strong>APP_URL <\/strong>\u00e8 l&#8217;URL dell&#8217;applicazione ospitata e <strong>DB_CONNECTION<\/strong> \u00e8 <code>mysql<\/code>.<\/p>\n<ol start=\"1\">\n<li>Andate alla pagina delle <strong>Impostazioni<\/strong> dell&#8217;applicazione.<\/li>\n<li>Nella scheda <strong>Buildpack<\/strong>, aggiungete PHP e Node.js come pacchetti di build. Poich\u00e9 si tratta di un&#8217;applicazione PHP, dovete aggiungere il pacchetto di build PHP per ultimo.<\/li>\n<li>Cliccate su <strong>Distribuisci ora<\/strong> per ricostruire l&#8217;applicazione.<\/li>\n<\/ol>\n<p>Successivamente, aggiungete un processo per la migrazione del database.<\/p>\n<ol start=\"1\">\n<li>Andate alla scheda <strong>Processi<\/strong> della pagina dell&#8217;applicazione ospitata.<\/li>\n<li>Selezionate <strong>Crea processo<\/strong> nella scheda <strong>Processi di runtime<\/strong>.<\/li>\n<li>Inserite <strong>Migrazione<\/strong> come nome, <strong>Background worker<\/strong> come tipo e <code>php artisan migrate --force<\/code> come comando di avvio. Potete lasciare le dimensioni del pod e le istanze ai valori predefiniti.<\/li>\n<li>Selezionate <strong>Continua<\/strong> per creare il processo. Questa azione attiva una nuova build e reimposta l&#8217;applicazione.<\/li>\n<li>Nella scheda <strong>Domini<\/strong> dell&#8217;applicazione, cliccate sul link dell&#8217;applicazione. Potete vedere che ora \u00e8 attiva e funzionante.<\/li>\n<li>Notate che l&#8217;applicazione blog distribuita su MyKinsta non mostra alcun post. Create un nuovo post inserendo il titolo, aggiungendo una descrizione e scegliendo un&#8217;immagine.<\/li>\n<\/ol>\n<h2>Riepilogo<\/h2>\n<p>Laravel permette di sviluppare rapidamente un semplice blog. La rapidit\u00e0 di caricamento delle pagine, la solida architettura dei controller e la sicurezza competente rendono facile migliorare le prestazioni di un&#8217;applicazione. Nel frattempo, MyKinsta permette di rilasciare e distribuire le applicazioni web in modo rapido ed efficace. Il modello di prezzo flessibile di MyKinsta si basa sull&#8217;utilizzo, eliminando i costi nascosti.<\/p>\n<p>Quando Kinsta ospita un&#8217;applicazione Laravel, questa viene eseguita sulla <a href=\"https:\/\/kinsta.com\/it\/blog\/piattaforma-cloud-per-sviluppatori\/\">piattaforma cloud di Google di livello Premium<\/a>, che la rende il pi\u00f9 veloce possibile. Kinsta include anche una protezione e una mitigazione DDoS di livello aziendale con Cloudflare e firewall avanzati per tenere a bada i malintenzionati e molto altro ancora.<\/p>\n<p>Iniziate subito la vostra <a href=\"https:\/\/kinsta.com\/it\/registrazione\/?product_type=app-db\">prova gratuita<\/a> dell&#8217;Hosting di Applicazioni per ottimizzare lo sviluppo e l&#8217;hosting delle vostre applicazioni web!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laravel \u00e8 un framework per applicazioni web in PHP con una sintassi espressiva ed elegante. Dispone di una vasta libreria di pacchetti e gestisce gran parte &#8230;<\/p>\n","protected":false},"author":290,"featured_media":71923,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[26020],"class_list":["post-71922","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-laravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Come Creare un Blog in Laravel - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Questa guida dettagliata ti illustrer\u00e0 l&#039;intero processo di costruzione di un blog con Laravel e la sua messa online con Kinsta.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come creare un blog in Laravel\" \/>\n<meta property=\"og:description\" content=\"Questa guida dettagliata ti illustrer\u00e0 l&#039;intero processo di costruzione di un blog con Laravel e la sua messa online con Kinsta.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-04T07:25:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-08T12:25:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/08\/laravel-blog.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3042\" \/>\n\t<meta property=\"og:image:height\" content=\"1521\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Marcia Ramos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Questa guida dettagliata ti illustrer\u00e0 l&#039;intero processo di costruzione di un blog con Laravel e la sua messa online con Kinsta.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/08\/laravel-blog.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marcia Ramos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/\"},\"author\":{\"name\":\"Marcia Ramos\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116\"},\"headline\":\"Come creare un blog in Laravel\",\"datePublished\":\"2023-08-04T07:25:20+00:00\",\"dateModified\":\"2023-08-08T12:25:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/\"},\"wordCount\":2575,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/08\/laravel-blog.jpg\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/\",\"name\":\"Come Creare un Blog in Laravel - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/08\/laravel-blog.jpg\",\"datePublished\":\"2023-08-04T07:25:20+00:00\",\"dateModified\":\"2023-08-08T12:25:30+00:00\",\"description\":\"Questa guida dettagliata ti illustrer\u00e0 l'intero processo di costruzione di un blog con Laravel e la sua messa online con Kinsta.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/08\/laravel-blog.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/08\/laravel-blog.jpg\",\"width\":3042,\"height\":1521,\"caption\":\"Come Creare un Blog in Laravel\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Come creare un blog in Laravel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116\",\"name\":\"Marcia Ramos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g\",\"caption\":\"Marcia Ramos\"},\"description\":\"I'm the Editorial Team Lead at Kinsta. I'm a open source enthusiast and I love coding. With more than 10 years of technical writing and editing for the tech industry, I love collaborating with people to create clear and concise pieces of content and improve workflows.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/marciadiasramos\/\"],\"honorificSuffix\":\"B.Sc.\",\"gender\":\"Female\",\"knowsLanguage\":[\"English\",\"Portuguese\"],\"jobTitle\":\"Editorial Team Lead\",\"worksFor\":\"Kinsta Inc.\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/marciaramos\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Come Creare un Blog in Laravel - Kinsta\u00ae","description":"Questa guida dettagliata ti illustrer\u00e0 l'intero processo di costruzione di un blog con Laravel e la sua messa online con Kinsta.","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:\/\/kinsta.com\/it\/blog\/blog-laravel\/","og_locale":"it_IT","og_type":"article","og_title":"Come creare un blog in Laravel","og_description":"Questa guida dettagliata ti illustrer\u00e0 l'intero processo di costruzione di un blog con Laravel e la sua messa online con Kinsta.","og_url":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2023-08-04T07:25:20+00:00","article_modified_time":"2023-08-08T12:25:30+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/08\/laravel-blog.jpg","type":"image\/jpeg"}],"author":"Marcia Ramos","twitter_card":"summary_large_image","twitter_description":"Questa guida dettagliata ti illustrer\u00e0 l'intero processo di costruzione di un blog con Laravel e la sua messa online con Kinsta.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/08\/laravel-blog.jpg","twitter_creator":"@Kinsta_IT","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Marcia Ramos","Tempo di lettura stimato":"16 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/"},"author":{"name":"Marcia Ramos","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116"},"headline":"Come creare un blog in Laravel","datePublished":"2023-08-04T07:25:20+00:00","dateModified":"2023-08-08T12:25:30+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/"},"wordCount":2575,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/08\/laravel-blog.jpg","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/","url":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/","name":"Come Creare un Blog in Laravel - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/08\/laravel-blog.jpg","datePublished":"2023-08-04T07:25:20+00:00","dateModified":"2023-08-08T12:25:30+00:00","description":"Questa guida dettagliata ti illustrer\u00e0 l'intero processo di costruzione di un blog con Laravel e la sua messa online con Kinsta.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/blog-laravel\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/08\/laravel-blog.jpg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/08\/laravel-blog.jpg","width":3042,"height":1521,"caption":"Come Creare un Blog in Laravel"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/blog-laravel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/it\/argomenti\/laravel\/"},{"@type":"ListItem","position":3,"name":"Come creare un blog in Laravel"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116","name":"Marcia Ramos","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g","caption":"Marcia Ramos"},"description":"I'm the Editorial Team Lead at Kinsta. I'm a open source enthusiast and I love coding. With more than 10 years of technical writing and editing for the tech industry, I love collaborating with people to create clear and concise pieces of content and improve workflows.","sameAs":["https:\/\/www.linkedin.com\/in\/marciadiasramos\/"],"honorificSuffix":"B.Sc.","gender":"Female","knowsLanguage":["English","Portuguese"],"jobTitle":"Editorial Team Lead","worksFor":"Kinsta Inc.","url":"https:\/\/kinsta.com\/it\/blog\/author\/marciaramos\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/71922","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/290"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=71922"}],"version-history":[{"count":9,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/71922\/revisions"}],"predecessor-version":[{"id":72058,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/71922\/revisions\/72058"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/71922\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/71922\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/71922\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/71922\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/71922\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/71922\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/71922\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/71922\/translations\/es"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/71922\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/71923"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=71922"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=71922"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=71922"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}