در زمان راه اندازی پروژه های وب روی سرور، اغلب سرویس ssh برای ادمین در دسترس نیست پس امکان اجرای دستورات از طریق shell وجود ندارد اما در لاراول اجرای migration ها و ساختن جدول های دیتابیس و .. با دستورات artisan اجرا می شوند.
در ادامه این مشکل را با نوشتن artisan script در یک controller و اجرای آن از طریق request حل می کنیم.
#می توان دستور مورد نظر مانند migrate را به این صورت نوشت
Artisan::call('migrate');
اما توجه داشته باشید برای اجرای دستور migrate نیاز به ورودی yes/no است که اینجا نمی توانیم به تابع بدهیم لذا حتما از option force– استفاده شود:
Artisan::call('migrate', ["--force"=> true ]);
هم چنین برای دستوراتی که نیاز به ورودی نام دارند مانند ساخت table داریم:
Artisan::call('migrate:make', ['name' => 'TABLE NAME']);
توضیحات بیشتر در سایت لاراول