Skip to content

วิธีใช้ Artisan Command ใน Shared hosting

บทนำ

หลายๆคนที่ใช้ Laravel ใน Share Hosting น่าจะมีปัญหาเพราะว่าไม่สามารถใช้ Artisan Command ได้ บทความนี้เราจะแชร์วิธีเรียกใช้ Artisan Command ใน Share Hosting กัน

เพิ่ม Routing

เพิ่ม Routing สำหรับเรียกใช้ Artisan Command กัน

php
Route::get('/run-migration', function (Request $request) {
    // ...
});

เพิ่มการเรียกใช้ Artisan Command

เรียกใช้ Artisan Command ในไฟล์ Router

php
use Illuminate\Support\Facades\Artisan;
// ...

Route::get('/run-migration', function (Request $request) {
    Artisan::call("migrate");   // เรียกใช้ Artisan Command
});

การ Pass Params ผ่าน Command

ในการ Pass Params สามารถใช้ได้ 2 วิธีคือ การส่งเข้าไปตรงๆ

php
Route::get('/run-migration', function (Request $request) {
    Artisan::call("migrate:fresh --seed");
});

อีกวิธีคือการส่งผ่าน Array Argument

php
Route::get('/run-migration', function (Request $request) {
    Artisan::call("migrate:fresh", [
        '--seed' => true,
        '--force' => true,
    ]);
});

สรุป

เพียงเท่านี้เราก็สามารถเรียกใช้ Artisan Command ผ่าน Share Hosting ได้แล้ว แต่ว่าเราไม่ควรเปิดให้เข้าถึง ได้จาก Public นะครับ นอกจากนี้แล้วยังมี Package Artisan UI ด้วย ซึ่งสามารถไปดูได้ที่นี่ https://github.com/lorisleiva/artisan-ui ซึ่งน่าจะเพิ่มความสะดวกให้แก่ทุกท่านได้มากขึ้น