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 ซึ่งน่าจะเพิ่มความสะดวกให้แก่ทุกท่านได้มากขึ้น