{"id":1076,"date":"2025-11-04T03:50:58","date_gmt":"2025-11-04T03:50:58","guid":{"rendered":"https:\/\/gurututorku.com\/blog\/?p=1076"},"modified":"2026-02-02T02:35:25","modified_gmt":"2026-02-02T02:35:25","slug":"tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail","status":"publish","type":"post","link":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/","title":{"rendered":"Tutorial Laravel 12 &#8211; Membuat Website Blog Berita &#8211; Bagian #2 (Upload Gambar Thumbnail)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">8. Tujuan Pembelajaran<\/h2>\n\n\n\n<p>Pada bagian ini, aplikasi web berita dikembangkan dengan <strong>fitur upload gambar thumbnail<\/strong>, sehingga setiap berita memiliki tampilan visual yang lebih menarik dan profesional.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">8.1 Pastikan Struktur Awal Sudah Berjalan<\/h2>\n\n\n\n<p>Sebelum menambahkan fitur lanjutan, pastikan fitur <strong>CRUD dasar berita (Post)<\/strong> dari tahap sebelumnya sudah berjalan dengan baik, meliputi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Menambah berita<\/li>\n\n\n\n<li>Menampilkan daftar berita<\/li>\n\n\n\n<li>Mengedit berita<\/li>\n\n\n\n<li>Menghapus berita<\/li>\n<\/ul>\n\n\n\n<p>Jika semua fungsi tersebut sudah berjalan normal, barulah kita lanjutkan ke fitur upload gambar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8.2 Menambahkan Kolom Thumbnail pada Tabel Posts<\/h2>\n\n\n\n<p>Kolom <code>thumbnail<\/code> digunakan untuk menyimpan <strong>path\/lokasi file gambar<\/strong> yang diupload oleh pengguna.<\/p>\n\n\n\n<p><strong>Membuat Migration Baru<\/strong><\/p>\n\n\n\n<p>a. Tambah kolom di tabel posts<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">php artisan make:migration add_thumbnail_to_posts_table --table=posts<\/pre>\n\n\n\n<p>Edit file migration:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">public function up(): void\n{\n  &nbsp; Schema::table('posts', function (Blueprint $table) {\n  &nbsp; &nbsp; &nbsp; $table-&gt;string('thumbnail')-&gt;nullable()-&gt;after('content');\n  &nbsp; });\n}<\/pre>\n\n\n\n<p>Jalankan migrasi:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">php artisan migrate<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8.3 Konfigurasi Storage Laravel<\/h2>\n\n\n\n<p>Laravel menyimpan file upload di folder <code>storage<\/code>. Agar file tersebut dapat diakses melalui browser, perlu dibuat <strong>symbolic link<\/strong> ke folder <code>public<\/code>.<\/p>\n\n\n\n<p>Jalankan perintah:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">php artisan storage:link<\/pre>\n\n\n\n<p>Lalu ubah local menjadi public di .env :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">FILESYSTEM_DISK=public<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8.4 Update Model Post<\/h2>\n\n\n\n<p>Kolom <code>thumbnail<\/code> harus ditambahkan ke properti <code>$fillable<\/code> agar dapat disimpan melalui proses input form.<\/p>\n\n\n\n<p>tambahkan kolom thumbnail di model Post.php :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">  &nbsp; protected $fillable = [\n  &nbsp; &nbsp; &nbsp; 'title',\n  &nbsp; &nbsp; &nbsp; 'content',\n  &nbsp; &nbsp; &nbsp; 'author',\n  &nbsp; &nbsp; &nbsp; 'thumbnail',\n  &nbsp; ];<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8.5 Update Controller (Upload &amp; Update File)<\/h2>\n\n\n\n<p>Controller dimodifikasi agar dapat:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Memvalidasi file gambar<\/li>\n\n\n\n<li>Menyimpan file ke storage<\/li>\n\n\n\n<li>Menghapus thumbnail lama jika diganti<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Method <code>store()<\/code><\/h3>\n\n\n\n<p>Ubah PostController method store dan update agar menangani upload file.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">public function store(Request $request)\n{\n  &nbsp; $request-&gt;validate([\n  &nbsp; &nbsp; &nbsp; 'title' =&gt; 'required',\n  &nbsp; &nbsp; &nbsp; 'content' =&gt; 'required',\n  &nbsp; &nbsp; &nbsp; 'thumbnail' =&gt; 'image|mimes:jpeg,png,jpg|max:2048'\n  &nbsp; ]);\n  &nbsp; $data = $request-&gt;all();\n  &nbsp; if ($request-&gt;hasFile('thumbnail')) {\n  &nbsp; &nbsp; &nbsp; $file = $request-&gt;file('thumbnail');\n  &nbsp; &nbsp; &nbsp; $path = $file-&gt;store('thumbnails', 'public');\n  &nbsp; &nbsp; &nbsp; $data['thumbnail'] = $path;\n  &nbsp; }\n  &nbsp; Post::create($data);\n  &nbsp; return redirect()-&gt;route('posts.index')-&gt;with('success', 'Berita berhasil ditambahkan!');\n}<\/pre>\n\n\n\n<p>Dan pada <strong>Method <code>update()<\/code><\/strong> :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">public function update(Request $request, Post $post)<br>  &nbsp; {<br>  &nbsp; &nbsp; &nbsp; $request-&gt;validate([<br>  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'title' =&gt; 'required|string|max:255',<br>  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'content' =&gt; 'required',<br>  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'thumbnail' =&gt; 'nullable|image|mimes:jpeg,png,jpg|max:2048',<br>  &nbsp; &nbsp; &nbsp; ]);<br>  &nbsp; &nbsp; &nbsp; $data = $request-&gt;only(['title', 'content', 'author']);<br>  &nbsp; &nbsp; &nbsp; \/\/ Jika user upload thumbnail baru<br>  &nbsp; &nbsp; &nbsp; if ($request-&gt;hasFile('thumbnail')) {<br>  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ Hapus file lama jika ada<br>  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($post-&gt;thumbnail &amp;&amp; \\Storage::disk('public')-&gt;exists($post-&gt;thumbnail)) {<br>  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \\Storage::disk('public')-&gt;delete($post-&gt;thumbnail);<br>  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ Simpan file baru<br>  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $path = $request-&gt;file('thumbnail')-&gt;store('thumbnails', 'public');<br>  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $data['thumbnail'] = $path;<br>  &nbsp; &nbsp; &nbsp; }<br>  &nbsp; &nbsp; &nbsp; $post-&gt;update($data);<br>  &nbsp; &nbsp; &nbsp; return redirect()-&gt;route('posts.index')-&gt;with('success', 'Berita berhasil diperbarui!');<br>&nbsp; &nbsp; }<br><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8.6 Update View (Blade Template)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">a. Form Tambah Berita (<code>create.blade.php<\/code>)<\/h3>\n\n\n\n<p>Tambahkan atribut <code>enctype<\/code> agar form dapat mengirim file.<\/p>\n\n\n\n<p>Tambahkan input thumbnail:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;form action=\"{{ route('posts.store') }}\" method=\"POST\" enctype=\"multipart\/form-data\"&gt;<br>  &nbsp; @csrf<br>  &nbsp; ...<br>  &nbsp; &lt;div class=\"mb-3\"&gt;<br>  &nbsp; &nbsp; &nbsp; &lt;label&gt;Thumbnail&lt;\/label&gt;<br>  &nbsp; &nbsp; &nbsp; &lt;input type=\"file\" name=\"thumbnail\" class=\"form-control\"&gt;<br>  &nbsp; &lt;\/div&gt;<br>  &nbsp; ...<br>&lt;\/form&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">b. Tampilkan Thumbnail (<code>show.blade.php<\/code>)<\/h3>\n\n\n\n<p>Lalu tampilkan gambar di show.blade.php:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">@if($post-&gt;thumbnail)<br>  &nbsp; &lt;img src=\"{{ asset('storage\/'.$post-&gt;thumbnail) }}\" class=\"img-fluid mb-3\" alt=\"Thumbnail\"&gt;<br>@endif<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">c. Daftar Berita (<code>index.blade.php<\/code>)<\/h3>\n\n\n\n<p>Tambahkan kolom thumbnail:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;th>Thumbnail&lt;\/th><\/code><\/pre>\n\n\n\n<p>Isi data:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;td>\n    @if($post->thumbnail)\n        &lt;img src=\"{{ asset('storage\/'.$post->thumbnail) }}\" width=\"80\">\n    @endif\n&lt;\/td><\/code><\/pre>\n\n\n\n<p>Dan di edit.blade.php, bisa ditambahkan input upload:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">d. Edit Berita (<code>edit.blade.php<\/code>)<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;form action=\"{{ route('posts.update', $post) }}\" method=\"POST\" enctype=\"multipart\/form-data\"><br>  \u00a0 @csrf<br>  \u00a0 ...<br>        {{-- Thumbnail lama --}}<br>  \u00a0 \u00a0 \u00a0 &lt;div class=\"mb-3\"><br>  \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;label class=\"form-label d-block\">Thumbnail Sekarang:&lt;\/label><br>  \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 @if ($post->thumbnail)<br>  \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;img src=\"{{ asset('storage\/' . $post->thumbnail) }}\"  alt=\"Thumbnail\" class=\"img-thumbnail mb-2\" width=\"200\"><br>  \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 @else<br>  \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;p>&lt;em>Belum ada thumbnail&lt;\/em>&lt;\/p><br>  \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 @endif<br>  \u00a0 \u00a0 \u00a0 &lt;\/div><br>  \u00a0 \u00a0 \u00a0 {{-- Upload Thumbnail baru --}}<br>  \u00a0 \u00a0 \u00a0 &lt;div class=\"mb-3\"><br>  \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;label for=\"thumbnail\" class=\"form-label\">Ganti Thumbnail (Opsional)&lt;\/label><br>  \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;input type=\"file\" name=\"thumbnail\" id=\"thumbnail\" class=\"form-control\"><br>  \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;small class=\"text-muted\">Kosongkan jika tidak ingin mengubah gambar.&lt;\/small><br>  \u00a0 \u00a0 \u00a0 &lt;\/div><br> ...<br>&lt;\/form><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">8.7 Menjalankan Aplikasi<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">php artisan serve<\/pre>\n\n\n\n<p>Lalu buka di browser:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">  &#x1f449; localhost:8000\/posts atau http:\/\/127.0.0.1:8000\/posts<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Pembuatan web berita menggunakan Laravel diawali dengan tahap persiapan yang mencakup perencanaan struktur aplikasi, instalasi lingkungan pengembangan, serta konfigurasi awal framework. Laravel dipilih karena menyediakan sistem MVC (Model-View-Controller) yang terorganisir, fitur autentikasi bawaan, dan kemudahan dalam membuat CRUD (Create, Read, Update, Delete).<\/p>\n","protected":false},"author":1,"featured_media":824,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,38],"tags":[35,140,141,142,22,138,139,143,144],"class_list":["post-1076","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-framework-laravel","category-tutorial-programming","tag-laravel-controller","tag-laravel-model","tag-laravel-route","tag-laravel-view-blade","tag-php-framework","tag-tutorial-laravel-12","tag-tutorial-laravel-migrate","tag-tutorial-laravel-mysql","tag-web-berita-laravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tutorial Laravel 12 - Membuat Website Blog Berita - Bagian #2 (Upload Gambar Thumbnail) - Gurututorku<\/title>\n<meta name=\"description\" content=\"laravel controller, laravel model, laravel route, laravel view blade, php framework, tutorial laravel 12, tutorial laravel migrate, tutorial laravel mysql, web berita laravel\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial Laravel 12 - Membuat Website Blog Berita - Bagian #2 (Upload Gambar Thumbnail) - Gurututorku\" \/>\n<meta property=\"og:description\" content=\"laravel controller, laravel model, laravel route, laravel view blade, php framework, tutorial laravel 12, tutorial laravel migrate, tutorial laravel mysql, web berita laravel\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/\" \/>\n<meta property=\"og:site_name\" content=\"Gurututorku\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-04T03:50:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-02T02:35:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"750\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"gtadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"gtadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/\"},\"author\":{\"name\":\"gtadmin\",\"@id\":\"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2\"},\"headline\":\"Tutorial Laravel 12 &#8211; Membuat Website Blog Berita &#8211; Bagian #2 (Upload Gambar Thumbnail)\",\"datePublished\":\"2025-11-04T03:50:58+00:00\",\"dateModified\":\"2026-02-02T02:35:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/\"},\"wordCount\":258,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2\"},\"image\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png\",\"keywords\":[\"laravel controller\",\"laravel model\",\"laravel route\",\"laravel view blade\",\"php framework\",\"tutorial laravel 12\",\"tutorial laravel migrate\",\"tutorial laravel mysql\",\"web berita laravel\"],\"articleSection\":[\"PHP Framework Laravel\",\"Tutorial Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/\",\"url\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/\",\"name\":\"Tutorial Laravel 12 - Membuat Website Blog Berita - Bagian #2 (Upload Gambar Thumbnail) - Gurututorku\",\"isPartOf\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png\",\"datePublished\":\"2025-11-04T03:50:58+00:00\",\"dateModified\":\"2026-02-02T02:35:25+00:00\",\"description\":\"laravel controller, laravel model, laravel route, laravel view blade, php framework, tutorial laravel 12, tutorial laravel migrate, tutorial laravel mysql, web berita laravel\",\"breadcrumb\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#primaryimage\",\"url\":\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png\",\"contentUrl\":\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png\",\"width\":1000,\"height\":750},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/gurututorku.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial Laravel 12 &#8211; Membuat Website Blog Berita &#8211; Bagian #2 (Upload Gambar Thumbnail)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/gurututorku.com\/blog\/#website\",\"url\":\"https:\/\/gurututorku.com\/blog\/\",\"name\":\"Gurututorku - Learning today success tomorrow\",\"description\":\"Kelas dan Kursus Programming, Design, Multimedia dan Tutorial IT lainnya.\",\"publisher\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/gurututorku.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2\",\"name\":\"gtadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/cropped-gurututorku-favicon.png\",\"contentUrl\":\"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/cropped-gurututorku-favicon.png\",\"width\":512,\"height\":512,\"caption\":\"gtadmin\"},\"logo\":{\"@id\":\"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/gurututorku.com\/blog\"],\"url\":\"https:\/\/gurututorku.com\/blog\/author\/gtadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tutorial Laravel 12 - Membuat Website Blog Berita - Bagian #2 (Upload Gambar Thumbnail) - Gurututorku","description":"laravel controller, laravel model, laravel route, laravel view blade, php framework, tutorial laravel 12, tutorial laravel migrate, tutorial laravel mysql, web berita laravel","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:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial Laravel 12 - Membuat Website Blog Berita - Bagian #2 (Upload Gambar Thumbnail) - Gurututorku","og_description":"laravel controller, laravel model, laravel route, laravel view blade, php framework, tutorial laravel 12, tutorial laravel migrate, tutorial laravel mysql, web berita laravel","og_url":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/","og_site_name":"Gurututorku","article_published_time":"2025-11-04T03:50:58+00:00","article_modified_time":"2026-02-02T02:35:25+00:00","og_image":[{"width":1000,"height":750,"url":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png","type":"image\/png"}],"author":"gtadmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"gtadmin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#article","isPartOf":{"@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/"},"author":{"name":"gtadmin","@id":"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2"},"headline":"Tutorial Laravel 12 &#8211; Membuat Website Blog Berita &#8211; Bagian #2 (Upload Gambar Thumbnail)","datePublished":"2025-11-04T03:50:58+00:00","dateModified":"2026-02-02T02:35:25+00:00","mainEntityOfPage":{"@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/"},"wordCount":258,"commentCount":0,"publisher":{"@id":"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2"},"image":{"@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#primaryimage"},"thumbnailUrl":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png","keywords":["laravel controller","laravel model","laravel route","laravel view blade","php framework","tutorial laravel 12","tutorial laravel migrate","tutorial laravel mysql","web berita laravel"],"articleSection":["PHP Framework Laravel","Tutorial Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/","url":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/","name":"Tutorial Laravel 12 - Membuat Website Blog Berita - Bagian #2 (Upload Gambar Thumbnail) - Gurututorku","isPartOf":{"@id":"https:\/\/gurututorku.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#primaryimage"},"image":{"@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#primaryimage"},"thumbnailUrl":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png","datePublished":"2025-11-04T03:50:58+00:00","dateModified":"2026-02-02T02:35:25+00:00","description":"laravel controller, laravel model, laravel route, laravel view blade, php framework, tutorial laravel 12, tutorial laravel migrate, tutorial laravel mysql, web berita laravel","breadcrumb":{"@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#primaryimage","url":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png","contentUrl":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/laravel.png","width":1000,"height":750},{"@type":"BreadcrumbList","@id":"https:\/\/gurututorku.com\/blog\/tutorial-laravel-12-membuat-website-blog-berita-bagian-2-upload-gambar-thumbnail\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gurututorku.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial Laravel 12 &#8211; Membuat Website Blog Berita &#8211; Bagian #2 (Upload Gambar Thumbnail)"}]},{"@type":"WebSite","@id":"https:\/\/gurututorku.com\/blog\/#website","url":"https:\/\/gurututorku.com\/blog\/","name":"Gurututorku - Learning today success tomorrow","description":"Kelas dan Kursus Programming, Design, Multimedia dan Tutorial IT lainnya.","publisher":{"@id":"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gurututorku.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/6c85586545a9930343cd35e9bf4bd9a2","name":"gtadmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/cropped-gurututorku-favicon.png","contentUrl":"https:\/\/gurututorku.com\/blog\/wp-content\/uploads\/2024\/11\/cropped-gurututorku-favicon.png","width":512,"height":512,"caption":"gtadmin"},"logo":{"@id":"https:\/\/gurututorku.com\/blog\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/gurututorku.com\/blog"],"url":"https:\/\/gurututorku.com\/blog\/author\/gtadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/posts\/1076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/comments?post=1076"}],"version-history":[{"count":21,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/posts\/1076\/revisions"}],"predecessor-version":[{"id":1488,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/posts\/1076\/revisions\/1488"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/media\/824"}],"wp:attachment":[{"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/media?parent=1076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/categories?post=1076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gurututorku.com\/blog\/wp-json\/wp\/v2\/tags?post=1076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}