<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: asepher</title>
    <description>The latest articles on DEV Community by asepher (@asepher).</description>
    <link>https://dev.to/asepher</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1057822%2Fff59a158-1953-40b0-a960-57d533c8197d.png</url>
      <title>DEV Community: asepher</title>
      <link>https://dev.to/asepher</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/asepher"/>
    <language>en</language>
    <item>
      <title>Kinds of Mysql Error fix</title>
      <dc:creator>asepher</dc:creator>
      <pubDate>Sun, 26 May 2024 09:51:30 +0000</pubDate>
      <link>https://dev.to/asepher/kind-of-mysql-error-fix-3p46</link>
      <guid>https://dev.to/asepher/kind-of-mysql-error-fix-3p46</guid>
      <description>&lt;p&gt;Warning "unsaved changes" when switching database&lt;br&gt;
&lt;a href="https://github.com/phpmyadmin/phpmyadmin/issues/19000"&gt;https://github.com/phpmyadmin/phpmyadmin/issues/19000&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.aurodigo.com/how-to-solve-fatal-error-maximum-execution-time-of-300-seconds-exceeded-phpmyadmin-problem-in-xampp"&gt;https://www.aurodigo.com/how-to-solve-fatal-error-maximum-execution-time-of-300-seconds-exceeded-phpmyadmin-problem-in-xampp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.apachefriends.org/f/viewtopic.php?t=82396&amp;amp;p=277705"&gt;https://community.apachefriends.org/f/viewtopic.php?t=82396&amp;amp;p=277705&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Save File to Public or Storage Folder</title>
      <dc:creator>asepher</dc:creator>
      <pubDate>Sat, 29 Jul 2023 22:47:09 +0000</pubDate>
      <link>https://dev.to/asepher/save-file-to-folder-storage-and-public-2ode</link>
      <guid>https://dev.to/asepher/save-file-to-folder-storage-and-public-2ode</guid>
      <description>&lt;p&gt;First: &lt;br&gt;
$path   = public_path('pdf');&lt;br&gt;
Second:&lt;br&gt;
$path   = storage_path('app/public/pdf/');&lt;/p&gt;

&lt;p&gt;Command Save :&lt;br&gt;
$pdf-&amp;gt;save($path.$nmfile);&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Insert Date Format to MySQL</title>
      <dc:creator>asepher</dc:creator>
      <pubDate>Thu, 27 Jul 2023 19:15:35 +0000</pubDate>
      <link>https://dev.to/asepher/insert-date-from-other-format-89j</link>
      <guid>https://dev.to/asepher/insert-date-from-other-format-89j</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public function TglSimpan($tglindo)
{
    //27-07-2023
    $tgl     =  substr($tglindo,0,2);
    $bln    =  substr($tglindo,3,2); 
    $thn     =  substr($tglindo,6,4); 
    return  $thn.'/'.$bln.'/'.$tgl;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
    <item>
      <title>rumus-vlookup-excel</title>
      <dc:creator>asepher</dc:creator>
      <pubDate>Thu, 27 Jul 2023 04:25:30 +0000</pubDate>
      <link>https://dev.to/asepher/rumus-vlookup-excel-4ead</link>
      <guid>https://dev.to/asepher/rumus-vlookup-excel-4ead</guid>
      <description>&lt;p&gt;Berikut adalah rumus VLOOKUP Excel dasar:&lt;br&gt;
=VLOOKUP(lookup value; table array; col_index_num; [range_lookup])&lt;/p&gt;

&lt;p&gt;Agar Moms tak bingung, berikut adalah arti dari masing-masing variabel di rumus tersebut:&lt;/p&gt;

&lt;p&gt;Lookup value&lt;br&gt;
Sel yang dijadikan patokan.&lt;/p&gt;

&lt;p&gt;Table array&lt;br&gt;
Tabel yang ingin diambil datanya.&lt;/p&gt;

&lt;p&gt;Col_index_num&lt;br&gt;
Urutan kolom di tabel yang ingin kamu ambil datanya.&lt;/p&gt;

&lt;p&gt;Range_lookup&lt;br&gt;
Sifat data yang ingin Moms cari (Akurat atau estimasi).&lt;/p&gt;

&lt;p&gt;Pada kasus ini, kita ingin mengisi kolom gaji berdasarkan posisi dari masing-masing karyawan.&lt;/p&gt;

&lt;p&gt;Jadi, di sini rumus yang digunakan adalah:&lt;/p&gt;

&lt;p&gt;=VLOOKUP(C4;$F$4:$G$6;2;0)&lt;/p&gt;

&lt;p&gt;Berikut adalah arti dari masing-masing variabel:&lt;/p&gt;

&lt;p&gt;Lookup value (kotak orange)&lt;/p&gt;

&lt;p&gt;Di sini, sel yang dijadikan patokan adalah C4. Karena kolom gaji diisi berdasarkan kolom posisi, dan sel teratas di kolom posisi adalah C4.&lt;/p&gt;

&lt;p&gt;Table array (kotak biru)&lt;br&gt;
Kita akan mengambil data nominal gaji dari kotak ini (sel F4:G6).&lt;/p&gt;

&lt;p&gt;Nah, agar datanya tak berubah, Moms bisa klik tombol F4. Sehingga angkanya akan berubah jadi “$F$4:$G$6”.&lt;/p&gt;

&lt;p&gt;Col_index_num&lt;br&gt;
Di sini, kita memasukkan angka 2. Sebab, kolom gaji merupakan kolom kedua di kotak biru.&lt;/p&gt;

&lt;p&gt;Range_lookup&lt;br&gt;
Karena ini adalah contoh sederhana dari VLOOKUP Excel, kita bisa masukkan angka 0 saja. &lt;/p&gt;

&lt;p&gt;Setelah itu, rumus VLOOKUP Excel akan mengambil data dari kotak biru secara otomatis dan mencocokkannya dengan informasi yang ada di sel C4.&lt;/p&gt;

&lt;p&gt;Karena di sel C4 informasinya adalah Manager, jadi data yang ditampilkan adalah 10 juta.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3J_oQ0Ve--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ep3ply0iytv0kaywoolv.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3J_oQ0Ve--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ep3ply0iytv0kaywoolv.JPG" alt="Image description" width="482" height="216"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.orami.co.id/magazine/rumus-vlookup-excel"&gt;https://www.orami.co.id/magazine/rumus-vlookup-excel&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Limit string length in Controller</title>
      <dc:creator>asepher</dc:creator>
      <pubDate>Wed, 26 Jul 2023 16:34:53 +0000</pubDate>
      <link>https://dev.to/asepher/limit-string-length-in-controller-2c32</link>
      <guid>https://dev.to/asepher/limit-string-length-in-controller-2c32</guid>
      <description>&lt;p&gt;Str::limit($your_string, 50)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devdojo.com/"&gt;https://devdojo.com/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Laravel 10 Upload Image To Storage Folder Part 2</title>
      <dc:creator>asepher</dc:creator>
      <pubDate>Wed, 26 Jul 2023 07:56:15 +0000</pubDate>
      <link>https://dev.to/asepher/laravel-10-upload-image-to-storage-folder-part-2-197l</link>
      <guid>https://dev.to/asepher/laravel-10-upload-image-to-storage-folder-part-2-197l</guid>
      <description>&lt;p&gt;&amp;lt;?php&lt;/p&gt;

&lt;p&gt;namespace App\Http\Controllers;&lt;/p&gt;

&lt;p&gt;use App\Helper\ImageManager;&lt;br&gt;
use App\Models\Image;&lt;br&gt;
use Illuminate\Http\Request;&lt;br&gt;
class TutorialController extends Controller&lt;br&gt;
{&lt;br&gt;&lt;br&gt;
    use ImageManager;&lt;br&gt;
    public function index()&lt;br&gt;
    {&lt;br&gt;
        return view('welcome');&lt;br&gt;
    }&lt;br&gt;
    public function store(Request $request)&lt;br&gt;
    {&lt;br&gt;
    $request-&amp;gt;validate([&lt;br&gt;
            'image' =&amp;gt; 'required|image|mimes:jpeg,png,jpg|max:2048',&lt;br&gt;
        ]);&lt;br&gt;
        $path = storage_path('images/');&lt;br&gt;
        !is_dir($path) &amp;amp;&amp;amp;&lt;br&gt;
            mkdir($path, 0777, true);&lt;br&gt;
        if($file = $request-&amp;gt;file('image')) {&lt;br&gt;
            $fileData = $this-&amp;gt;uploads($file,$path);&lt;br&gt;
            Image::create([&lt;br&gt;
                'name' =&amp;gt; $fileData['fileName'],&lt;br&gt;
                'type' =&amp;gt; $fileData['fileType'],&lt;br&gt;
                'path' =&amp;gt; $fileData['filePath'],&lt;br&gt;
                'size' =&amp;gt; $fileData['fileSize']&lt;br&gt;
            ]);&lt;br&gt;
        }&lt;br&gt;
        return redirect()&lt;br&gt;
            -&amp;gt;back()&lt;br&gt;
            -&amp;gt;with('success', 'Image successfully upload.');&lt;br&gt;
    }&lt;br&gt;
}&lt;/p&gt;

&lt;h2&gt;
  
  
  app/Helper/ImageManager.php
&lt;/h2&gt;

&lt;p&gt;namespace App\Helper;&lt;br&gt;
use Illuminate\Support\Facades\File;&lt;br&gt;
use Illuminate\Support\Facades\Storage;&lt;br&gt;
trait ImageManager {&lt;br&gt;
    public function uploads($file, $path)&lt;br&gt;
    {&lt;br&gt;
        if($file) {&lt;br&gt;
       $fileName   = time() . $file-&amp;gt;getClientOriginalName();&lt;br&gt;
       Storage::disk('public')-&amp;gt;put($path . $fileName, File::get($file));&lt;br&gt;
       $file_name  = $file-&amp;gt;getClientOriginalName();&lt;br&gt;
            $file_type  = $file-&amp;gt;getClientOriginalExtension();&lt;br&gt;
            $filePath   = $path . $fileName;&lt;br&gt;
            return $file = [&lt;br&gt;
                'fileName' =&amp;gt; $file_name,&lt;br&gt;
                'fileType' =&amp;gt; $file_type,&lt;br&gt;
                'filePath' =&amp;gt; $filePath,&lt;br&gt;
                'fileSize' =&amp;gt; $this-&amp;gt;fileSize($file)&lt;br&gt;
            ];&lt;br&gt;
        }&lt;br&gt;
    }&lt;br&gt;
    public function fileSize($file, $precision = 2)&lt;br&gt;
    {&lt;br&gt;&lt;br&gt;
        $size = $file-&amp;gt;getSize();&lt;br&gt;
        if ( $size &amp;gt; 0 ) {&lt;br&gt;
            $size = (int) $size;&lt;br&gt;
            $base = log($size) / log(1024);&lt;br&gt;
            $suffixes = array(' bytes', ' KB', ' MB', ' GB', ' TB');&lt;br&gt;
            return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)];&lt;br&gt;
        }&lt;br&gt;
        return $size;&lt;br&gt;
    }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.laravelia.com/"&gt;https://www.laravelia.com/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Laravel File Upload</title>
      <dc:creator>asepher</dc:creator>
      <pubDate>Wed, 26 Jul 2023 07:16:03 +0000</pubDate>
      <link>https://dev.to/asepher/laravel-file-upload-3k34</link>
      <guid>https://dev.to/asepher/laravel-file-upload-3k34</guid>
      <description>&lt;p&gt;&lt;strong&gt;Validasi Image&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XmjqLW_L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/al45q7dn1y1ki3e3b7uq.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XmjqLW_L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/al45q7dn1y1ki3e3b7uq.JPG" alt="Image description" width="704" height="307"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Memeriksa File Upload&lt;/strong&gt;&lt;br&gt;
if($request-&amp;gt;hasFile('foto')){&lt;br&gt;
        // ada file yang diupload&lt;br&gt;
    }else{&lt;br&gt;
        // tidak ada file yang diupload&lt;br&gt;
    }&lt;br&gt;
&lt;strong&gt;Nama File Unik&lt;/strong&gt;&lt;br&gt;
$filenameWithExt = $request-&amp;gt;file('foto’)-&amp;gt;getClientOriginalName();&lt;br&gt;
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);&lt;br&gt;
$extension = $request-&amp;gt;file('foto’)-&amp;gt;getClientOriginalExtension();&lt;br&gt;
$filenameSimpan = $filename.'_'.time().’.'.$extension;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A-GNHl1i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y53t4wuxujscnfegdnsu.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A-GNHl1i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y53t4wuxujscnfegdnsu.JPG" alt="Image description" width="660" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Generate Unique Random Numbers in Laravel</title>
      <dc:creator>asepher</dc:creator>
      <pubDate>Wed, 26 Jul 2023 06:58:54 +0000</pubDate>
      <link>https://dev.to/asepher/generate-unique-random-numbers-in-laravel-47k9</link>
      <guid>https://dev.to/asepher/generate-unique-random-numbers-in-laravel-47k9</guid>
      <description>&lt;p&gt;$data = [&lt;br&gt;
      'number' =&amp;gt; ticket_number(),&lt;br&gt;
      'subject' =&amp;gt; 'Sample subject',&lt;br&gt;
      'description' =&amp;gt; 'This is the description sample'&lt;br&gt;
];&lt;/p&gt;

&lt;p&gt;$ticket = Ticket::create($data);&lt;/p&gt;

&lt;p&gt;function ticket_number()&lt;br&gt;
{&lt;br&gt;
    do {&lt;br&gt;
        $number = random_int(1000000, 9999999);&lt;br&gt;
    } while (Ticket::where("number", "=", $number)-&amp;gt;first());&lt;br&gt;
    return $number;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codeanddeploy.com/"&gt;https://codeanddeploy.com/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Creating a Storage Link on Shared Hosting</title>
      <dc:creator>asepher</dc:creator>
      <pubDate>Tue, 25 Jul 2023 06:07:40 +0000</pubDate>
      <link>https://dev.to/asepher/membuat-symlink-melalui-cron-job-2ae</link>
      <guid>https://dev.to/asepher/membuat-symlink-melalui-cron-job-2ae</guid>
      <description>&lt;p&gt;ln -s /home/u111xxxx/companyprofile/storage/app/public /home/u111xxxx/public_html/storage&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--r0rfrA6c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gspye39aiok6vjsn7rnd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--r0rfrA6c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gspye39aiok6vjsn7rnd.png" alt="Image description" width="726" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;thx to &lt;br&gt;
&lt;a href="https://codelapan.com/post/easy-ways-to-upload-or-deploy-laravel-project-to-shared-hosting"&gt;https://codelapan.com/post/easy-ways-to-upload-or-deploy-laravel-project-to-shared-hosting&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Generate Slug in Laravel</title>
      <dc:creator>asepher</dc:creator>
      <pubDate>Tue, 25 Jul 2023 02:01:42 +0000</pubDate>
      <link>https://dev.to/asepher/how-to-generate-slug-in-laravel-i31</link>
      <guid>https://dev.to/asepher/how-to-generate-slug-in-laravel-i31</guid>
      <description>&lt;p&gt;public function store(Request $request)&lt;br&gt;
    {&lt;br&gt;
        $post            = new Post();&lt;br&gt;
        $post-&amp;gt;title  = $request-&amp;gt;title;&lt;br&gt;
        $post-&amp;gt;slug = \Str::slug($request-&amp;gt;title);&lt;br&gt;
        $post-&amp;gt;save();&lt;br&gt;
    }&lt;/p&gt;

&lt;p&gt;Thanks to:&lt;br&gt;
&lt;a href="https://codelapan.com/post/how-to-generate-unique-slug-in-laravel-8"&gt;https://codelapan.com/post/how-to-generate-unique-slug-in-laravel-8&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Get file name without extension in laravel</title>
      <dc:creator>asepher</dc:creator>
      <pubDate>Mon, 24 Jul 2023 07:33:43 +0000</pubDate>
      <link>https://dev.to/asepher/get-file-name-without-extension-in-laravel-4i4g</link>
      <guid>https://dev.to/asepher/get-file-name-without-extension-in-laravel-4i4g</guid>
      <description>&lt;p&gt;if ($request-&amp;gt;hasfile('filename')) {&lt;br&gt;
    $image = $request-&amp;gt;filename;&lt;br&gt;
    $namewithextension = $image-&amp;gt;getClientOriginalName(); &lt;br&gt;
    //Name with extension 'filename.jpg'&lt;br&gt;
    $name = explode('.', $namewithextension)[0]; &lt;br&gt;
    // Filename 'filename'&lt;br&gt;
    $extension = $image-&amp;gt;getClientOriginalExtension(); &lt;br&gt;
    //Extension 'jpg'&lt;br&gt;
    $uploadname = time() . '.' . $extension;&lt;br&gt;
    $image-&amp;gt;move(public_path() . '/uploads/', $uploadname);&lt;br&gt;
}&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Clear Cache at Share Hosting</title>
      <dc:creator>asepher</dc:creator>
      <pubDate>Mon, 24 Jul 2023 06:24:24 +0000</pubDate>
      <link>https://dev.to/asepher/clear-cache-at-share-hosting-5amh</link>
      <guid>https://dev.to/asepher/clear-cache-at-share-hosting-5amh</guid>
      <description>&lt;p&gt;//Clear Cache at Route:&lt;br&gt;
Route::get('/route-cache', function() {&lt;br&gt;
     $exitCode = Artisan::call('route:cache');&lt;br&gt;
     return 'Routes cache cleared';&lt;br&gt;
 });&lt;/p&gt;

&lt;p&gt;//Clear Cache at Config:&lt;br&gt;
 Route::get('/config-cache', function() {&lt;br&gt;
     $exitCode = Artisan::call('config:cache');&lt;br&gt;
     return 'Config cache cleared';&lt;br&gt;
 });&lt;/p&gt;

&lt;p&gt;//Clear  Cache at Application:&lt;br&gt;
 Route::get('/clear-cache', function() {&lt;br&gt;
     $exitCode = Artisan::call('cache:clear');&lt;br&gt;
     return 'Application cache cleared';&lt;br&gt;
 });&lt;br&gt;
//Clear Cache at View:&lt;br&gt;
 Route::get('/view-clear', function() {&lt;br&gt;
     $exitCode = Artisan::call('view:clear');&lt;br&gt;
     return 'View cache cleared';&lt;br&gt;
 });&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="https://bangagung.id/"&gt;https://bangagung.id/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
