LaravelPackages.net
Acme Inc.
Toggle sidebar
meshesha/artisan-make-mvc

Laravel artisan command to create view, controller and route from existing Model

10
3
About meshesha/artisan-make-mvc

meshesha/artisan-make-mvc is a Laravel package for laravel artisan command to create view, controller and route from existing model. It currently has 3 GitHub stars and 10 downloads on Packagist. Install it with composer require meshesha/artisan-make-mvc. Discover more Laravel packages by meshesha or browse all Laravel packages to compare alternatives.

Last updated

Aartisan make Mvc

Laravel package that adds artisan command to create CRUD files and actions which includes: views (index,create,show,edit) , controller , add a route , factory and test . It depends on the existing model. And all this in a single command line.

Requirements

  • laravel >= 7

Installation

Downloading

Via composer:

composer require meshesha/artisan-make-mvc

Publish config file

php artisan vendor:publish --provider="Meshesha\ArtisanMakeMvc\ArtisanMakeMvcServiceProvider"

Usage

  • This package depends on an existing model. So it is required to create a model:
php artisan make:model Post -m
  • complete the required column names in the migration file, and migrate to the database.

  • Inside the model file you must add $fillable

protected $fillable = [
'title',
'body',
];

Command options


php artisan make:mvc {model} {--W|incviews=true} {--F|viewfolder=} {--H|includehidden=true} {--C|inccontroller=true} {--R|incroute=true}

model :  the existing model name (required) (e.g. 'Post')
--incviews      | -W : Whether to include\create blade views  (optional) (default value : true).
--viewfolder    | -F : sub folder inside "resources\views" (optional) (default value : db table name of model (e.g. : 'posts'))
--includehidden | -H : Whether to include hidden fields that are mentioned in the model via 'protected $hidden' (optional) (default value : false)
--inccontroller | -C : Whether to include\create controller (optional) (default value : true)
--incroute      | -R : Whether or not to add a route to the routers file (optional) (default value : true)

--factory            : Add factory file (ModelNameFactory.php)  in "database/Factories" directory.
--test               : Add test file (ModelNameTest.php) in "tests/Feature" directory and factory file  in "database/Factories" directory (because it is required for testing).

Config file (config\ArtisanMakeMvc.php)

return [
    "template" => "default", //templates: default (Vanilla CSS), bootstrap, tailwind
    "extends" => "", //e.g: @extends('layouts.app')
    "section" => "", //e.g: @section('content')
    "endsection" => "", //e.g: @endsection
];

Example:


php artisan make:mvc Post

# 'Post' - model name

This command will create:

And add to routes/web.php: For laravel version >= 8.0.0

// posts:
Route::resource('posts', App\Http\Controllers\PostController::class);

For laravel version < 8.0.0

// posts:
Route::resource('posts', 'PostController');

undo

undo last action


php artisan mvc:undo

Will delete all recently created files.

more options:

-L | --list    : shows history list
-S | --select  : select from list for 'undo' action.

License

MIT License (MIT). Please see the license file for more information.

Comments