Easiest way to create beautiful administration backends with Symfony.

Overview

Umbrella framework

Easiest way to create beautiful administration backends with Symfony.

Symfony version PHP version Bootstrap version

test core workflow test admin workflow

Demo websiteDemo repository



Create a new project with Umbrella

First, make sure you install Node.js, Yarn package manager, php7.4 and also composer.

  • composer create-project umbrella2/skeleton my_project
  • cd my_project/

Configure your database:

  • Edit the DATABASE_URL env var in the .env file to use your database credentials.
  • php bin/console doctrine:database:create
  • php bin/console doctrine:schema:create

Serve:

Install umbrella on your symfony project

composer require umbrella2/adminbundle

Create your first admin view

Create a controller on your project :

render('@UmbrellaAdmin/layout.html.twig'); } } ">
// src/Controller/Admin/DefaultController.php


namespace App\Controller\Admin;

use Symfony\Component\Routing\Annotation\Route;
use Umbrella\CoreBundle\Controller\BaseController;

class DefaultController extends BaseController
{
    /**
     * @Route("/admin", name="admin_home")
     */
    public function index()
    {
        return $this->render('@UmbrellaAdmin/layout.html.twig');
    }

}

Note, all your admin view must extends @UmbrellaAdmin/layout.html.twig.

Additionally, you can add entry on menu :

// src/Menu/AdminMenu.php


namespace App\Menu;

use Umbrella\AdminBundle\Menu\BaseAdminMenu;
use Umbrella\CoreBundle\Menu\Builder\MenuBuilder;

class AdminMenu extends BaseAdminMenu
{

    public function buildMenu(MenuBuilder $builder)
    {
        $builder->root()
            ->add('My app')
                ->add('Home')
                    ->icon('uil-home')
                    ->route('admin_home');
    }

}
# app/config/packages/umbrella_admin.yaml
umbrella_admin:
  menu: App\Menu\AdminMenu

Et voila.

Manager admin user with doctrine

Create user entity with maker :

php bin/console make:admin_user

Enable admin CRUD and security views :

# app/config/packages/umbrella_admin.yaml
umbrella_admin:
  user:
    class: App\Entity\AdminUser
# app/config/routes.yaml
admin_user_:
  resource: "@UmbrellaAdminBundle/config/routes/user.yaml"
  prefix: /admin

admin_userprofile_:
  resource: "@UmbrellaAdminBundle/config/routes/user_profile.yaml"
  prefix: /admin

Add entry on menu :

// src/Menu/AdminMenu.php
public function buildMenu(MenuBuilder $builder)
{
    $builder->root()
        ->add('My app')
            ->add('Home')
                ->icon('uil-home')
                ->route('admin_home')
                ->end()
            ->add('Users')
                ->icon('uil-user')
                ->route('umbrella_admin_user_index');

}

Protect all your admin urls by firewall :

security:
    # new Authentication manager must be enabled
    enable_authenticator_manager: true

    # Configure password hasher for your User
    password_hashers:
        App\Entity\AdminUser: 'sodium'

    # Register a doctrine provider for your User
    providers:
        admin_provider:
            entity:
                class: App\Entity\AdminUser
                property: email
    firewalls:
        ...

        # Protect all urls start with /admin by firewall
        admin:
            pattern: ^/admin
            user_checker: Umbrella\AdminBundle\Security\UserChecker
            entry_point: Umbrella\AdminBundle\Security\AuthenticationEntryPoint
            provider: admin_provider
            lazy: true
            form_login:
                login_path: umbrella_admin_login
                check_path: umbrella_admin_login
                default_target_path: app_admin_default_index
                enable_csrf: true
            logout:
                path: umbrella_admin_logout
                target: umbrella_admin_login

    access_control:
        - { path: ^/admin/login$, role: PUBLIC_ACCESS } # Admin login url mus be public 
        - { path: ^/admin/password_request, role: PUBLIC_ACCESS } # Admin password request url must be public
        - { path: ^/admin/password_reset, role: PUBLIC_ACCESS } # Admin password reset url must be public
        - { path: ^/admin, roles: ROLE_ADMIN } # Other admin urls must be protected

Regenerate symfony cache php bin/console cache:clear
Update doctrine schema php bin/console doctrine:schema:update --force
Et voila, you must be logged to access administration backends and you can manage admin users.

Run following command to create a new admin user:

php bin/console create:admin_user

Create CRUD with maker

php bin/console make:table # Table view
php bin/console make:tree # Tree view

Documentation

A good way to learn how to use components is to look at umbrella-admin-demo code.

~~ work in progress ~~

Components

  • Menu, Breadcrumb
  • DataTable
  • FormType : Choice2Type, Entity2Type, CkeditorType, DatePickerType, AutoCompleteType
  • Js response
  • Tabs
  • Searchable entity

Admin

  • Customize user managment
  • Enable Notification system

Contributors

Any help, suggestions or contributions are welcome.

Comments
  • Clarify license for Hyper Admin Theme

    Clarify license for Hyper Admin Theme

    Description

    I really like this bundle and would like to use it with some of my projects.

    I'm concerned about the license, though, as it's based on this theme:

    https://themes.getbootstrap.com/product/hyper-responsive-admin-dashboard-template/

    But it appears that the license doesn't cover embedding the theme in a framework:

    https://themes.getbootstrap.com/licenses/

    Can you please clarify?

    Example

    No response

    Feature 
    opened by tacman 10
  • Pass context/options to MenuBuilder

    Pass context/options to MenuBuilder

    Description

    I'd like to pass some context to a menu, so that I can build a menu specific to a set of page. For example, I want to pass in an person, and based on some properties I'll generate the menu. I'll have different menus for each part of the site.

    If there's a way to configure rendering options, like classes on selected items, those could be pass in as well. KnpMenuBundle uses this approach.

    Building the menu and rendering it feel like they could be separate, though not essential.

    Example

    Something like

                {% set menu = umbrella_get_menu('App\\Menu\\PersonAdminMenu', {person: person}) %}
                {{ umbrella_render_menu(menu, {currentClass: 'selected'}) }}
    
    namespace App\Menu;
    
    class PersonAdminMenu extends BaseAdminMenu
    {
       private Person $person;
       public function setContext(array $context) 
       { 
           $this->person = $context['person'];
       }
    
        public function buildMenu(MenuBuilder $builder)
        {
            $u = $builder->root();
            if ($this->person->hasBio()) {
                      $u->add('biography')
                ->route('person_bio', ['id' => $person->getId()]);
         }
    

    Currently I'm passing in the related entity via the RequestStack, which feels kludgy.

    Feature 
    opened by tacman 6
  • Installation failed

    Installation failed

    Symfony operations: 2 recipes (f98f61df183401c3baddd25ca86d7b00)

    • Configuring umbrella2/corebundle (>=v2.8): From auto-generated recipe
    • Configuring umbrella2/adminbundle (>=v2.8): From auto-generated recipe

    Executing script cache:clear [KO] [KO] Script cache:clear returned with error code 1

    !! !! In ArrayNode.php line 218: !!
    !! The child config "home_route" under "umbrella_admin" must be configured: Route of admin home
    !!
    !! !!

    Script @auto-scripts was called via post-update-cmd

    Installation failed, reverting ./composer.json and ./composer.lock to their original content.

    opened by filipealonso 6
  • make:admin:user and BaseAdminUser should support doctrine attributes

    make:admin:user and BaseAdminUser should support doctrine attributes

    Umbrella version affected

    all

    Description

    If a project is using doctrine attributes (rather than annotations), generating the admin user should generate attributes and not annotations.

    How to reproduce

    Configure doctrine for attributes

    # config/packages/doctrine.yaml
    
    doctrine:
      orm:
        mappings:
          App:
            type: attribute
    

    make the admin user class and clear the cache

    php bin/console make:admin:user
    php bin/console cache:clear
    

    The error is

    Class "App\Entity\AdminUser" sub class of "Umbrella\AdminBundle\Entity\BaseAdminUser" is not a valid entity or mapped super class.  
    

    The BaseAdminUser needs to support both annotations and attributes, which should be possible:

    https://tomasvotruba.com/blog/how-to-refactor-custom-doctrine-annotations-to-attributes/

    Additional Context

    No response

    Feature 
    opened by tacman 5
  • Cannot sort relation column

    Cannot sort relation column

    Umbrella version affected

    5.0

    Description

    I created a Feature entity that relates to itself

    class Features
    {
        use IdTrait;
        use SearchTrait;
    
        /**
         * @ORM\Column(type="string", length=255)
         */
        private $name;
    
        /**
         * @ORM\ManyToOne(targetEntity=Features::class, inversedBy="features")
         */
        private $parent;
    
        /**
         * @ORM\OneToMany(targetEntity=Features::class, mappedBy="parent")
         */
        private $features;
    
    

    However I can't sort by parent in the DataTable view

    class FeaturesTableType extends DataTableType
    {
        public function buildTable(DataTableBuilder $builder, array $options)
        {
            $builder->addFilter('search', SearchType::class);
            $builder->addAction('add', ButtonAddActionType::class, [
                'route' => 'app_admin_features_edit',
            ]);
    
            $builder->add('id')
                ->add('name')
                ->add('parent');
            $builder->add('__action__', ActionColumnType::class, [
                'build' => function (ColumnActionBuilder $builder, Features $e) {
                    $builder->editLink([
                        'route' => 'app_admin_features_edit',
                        'route_params' => ['id' => $e->id],
                    ]);
                    $builder->deleteLink([
                        'route' => 'app_admin_features_delete',
                        'route_params' => ['id' => $e->id]
                    ]);
                }
            ]);
    
            $builder->useEntityAdapter([
                'class' => Features::class,
                'query' => function (QueryBuilder $qb, array $formData) {
                    if (isset($formData['search'])) {
                        $qb->andWhere('LOWER(e.search) LIKE :search');
                        $qb->setParameter('search', '%' . $formData['search'] . '%');
                    }
                }
            ]);
        }
    
    }
    
    

    I get this error in the profiler An exception occurred while executing a query: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'f0_.parent_id' in 'field list'

    How to reproduce

    1. Create symfony lts and require relevant UmbrellaAdmin package
    composer create-project symfony/skeleton:"^5.4"
    composer require umbrella2/adminbundle:"^5.0"
    
    1. Create an entity Feature from umbrella php bin/console make:admin:table

    2. Create properties an entity feature php bin/console make:entity

    3. Update DB

    php bin/console make:migration 
    php bin/console doctrine:migrations:migrate
    
    1. Add properties to datatable
    2. Sort by relation column

    Additional Context

    No response

    opened by alexseif 4
  • Make content block configurable

    Make content block configurable

    Description

    I'm integrating Umbrella with a project that used Symfony's crud system to generate its templates. The content of each page (show, edit, index, etc.) is

    {% extends "base.html.twig" %}
    
    {% block body %}
        <h1>{{ session }} Session</h1>
    {% endblock %}
    

    I've changed base.html.twig to extend from umbrella:

    {% extends "@UmbrellaAdmin/layout.html.twig" %}
    

    But now my page content is taking over the entire body. Obviously, I can change my twig templates from block body to block content, but I'm hoping there's another way.

    I'm wondering if using embed might be the right solution. But I can't seem to figure it out.

    For now, I'm simply copying the umbrella base template into my project base template and tweaking the content block, and maybe that is in fact the right way to use umbrella. But if there's an easy way to use umbrella with Symfony-generated crud files, it would be worth considering.

    Example

    No response

    Feature 
    opened by tacman 4
  • bin/console create:admin_user not visible

    bin/console create:admin_user not visible

    Umbrella version affected

    4.x

    Description

    This command isn't visible:

    bin/console create:admin_user
    
    [critical] Error thrown while running command "'create:admin_user'". Message: "There are no commands defined in the "create" namespace."
    

    How to reproduce

    composer require umbrella2/adminbundle
    bin/console create:admin_user
    

    Additional Context

    No response

    Bug 
    opened by tacman 4
  • Ordering via relation field

    Ordering via relation field

    Umbrella version affected

    6.1

    Description

    Not sure if this is a bug but I cannot figure out how to get it to work. I want to sort a column that contains a many-to-one relation. The umbrella backends gives me an error.

    Before: image

    Click on the third column to sort.

    After: image

    How to reproduce

    Create an entity that has a many-to-one relation with another entity (or itself, in my case).

    In my case, I have a category entity, which has a many-to-one to itself, which is the 'parent-category'.

    #[ORM\ManyToOne(targetEntity: 'App\Entity\Default\Category', inversedBy: 'categories')]
    #[ORM\JoinColumn(nullable: true, name: 'parent_category_id')]
    public ?Category $parent_category;
    

    Adding this column to the data table builder:

    $fieldOptions['property_path'] = 'parent_category';
    $fieldOptions['order_by'] = 'parent_category.cms_label';
    $builder->add('parent_category', 'Umbrella\CoreBundle\DataTable\Column\PropertyColumnType', $fieldOptions);
    

    Trying to sort gives this error:

    [Semantical Error] line 0, col 72 near 'parent_category.cms_label': Error: 'parent_category' is not defined.

    image

    Additional Context

    No response

    opened by jeroenmimpen 2
  • No config file with Symfony 6.0.1 and PHP 8.0.13

    No config file with Symfony 6.0.1 and PHP 8.0.13

    Umbrella version affected

    4.2

    Description

    No config/packages/umbrella_admin.yaml file when install with : composer require umbrella2/adminbundle and when create manualy, nothing happend....

    I have create the Admin/DefaultController.php and this route is fine. I try to make the menu with the file : src/Menu/AdminMenu.php and with the config file but I don't find this file (config/packages/umbrella_admin.yaml). I try to create this manualy and I put the config nut nothing happend (no menu on the screen) :

    umbrella_admin:
      menu: App\Menu\AdminMenu
    

    How to reproduce

    composer require umbrella2/adminbundle on a clean symfony 6.0.1 installation (Debian 10 and PHP 8.0.13)

    Additional Context

    No response

    opened by Grazulex 2
  • docker installation for demo fails on nginx

    docker installation for demo fails on nginx

    Umbrella version affected

    admin demo

    Description

    Run the demo from docker.

    How to reproduce

    Clone repository

    git clone [email protected]:acantepie/umbrella-admin-demo.git umbrella_demo cd umbrella-demo

    Build / Up Docker

    docker-compose up -d

    Logs show:

    nginx | 2021/11/28 13:22:14 [emerg] 1#1: host not found in upstream "symfony" in /etc/nginx/conf.d/default.conf:11 nginx | nginx: [emerg] host not found in upstream "symfony" in /etc/nginx/conf.d/default.conf:11

    Additional Context

    No response

    opened by tacman 2
  • Fix deprecations for Symfony 5.4/6

    Fix deprecations for Symfony 5.4/6

    This PR adds return types, which are required in Symfony 6 (and flagged as deprecated for 5.4).

    Tests should now run against Symfony 5.3, 5.4 and 6, although something is wrong in the configuration so I don't think that's working.

    Finally, I added PHP 8.1 (to be released in a few days), it's showing some errors.

    Locally, my version of demo works with Symfony 5.4 beta3, and the only deprecations are from Symfony.

    One test is failing with 5.4 and PHP8, $user not being initialized.

    I think this is pretty close to being usable, so we can start tweaking the demo repo to run on Symfony 6.

    opened by tacman 2
  • Adding default custom sorting

    Adding default custom sorting

    For one of my lists I would like custom sorting (preferable on a field that is not part of the table, but is part of the entity).

    I tried the following:

    $table->handleRequest($request);
    $data = [
        'draw'     => $table->getState()->getDraw(),
        'start'    => $table->getState()->getStart(),
        'length'   => $table->getState()->getLength(),
        'orderBy'  => $table->getState()->getOrderBy(),
        'formData' => $table->getState()->getFormData(),
        'callback' => $table->getState()->isCallback(),
    ];
    
    $data['orderBy'] = [['order_by'=>['name'], 'direction'=>'asc']];
    $table->getState()->updateFromArray($data);
    

    But could not get it to work this way. The updateFromArray function resets some data and some things get lost in the process.

    I am able to make this work by adjusting the query builder given to the entityAdapter in the DataTableBuilder.

    $builder->useEntityAdapter([
          // ... pass data, pass function, in this function call:
          // $qb->addOrderBy('e.created_at', 'asc');
    ]);
    

    But I would like to apply this sorting only if there is no sorting present yet. Any sorting applied by the CMS user should take priority. But all CMS-applied-sorting is ignored now; clicking on a column has no discernible effect.

    What would be a good or the proper way to accomplish this?

    opened by jeroenmimpen 0
  • Use different doctrine connection for DataTableType

    Use different doctrine connection for DataTableType

    When creating a DataTableType for an Entity for a different connection I cannot figure out how to tell this to use this connection. Currently getAdapterResult will always use the 'default' doctrine connection.

    In most other places I have access to the EntityManager (via ->em()) and I am able to pass the name. In the case of some helper functions (persistAndFlush, findOrNotFound, etc) I cannot pass the name, but I can easily overwrite these functions to make this possible.

    Is there a way to accomplish this for the DataTableType classes?

    Feature 
    opened by jeroenmimpen 2
  • Feature Request: Add a registration page to the demo

    Feature Request: Add a registration page to the demo

    Description

    The login page is quite nice. Could you also add a registration page, e.g. https://demo.adminkit.io/pages-sign-up.html?

    Of course, this isn't trivial -- the UI is, but security and authentication is often app-specific. Symfony now has an "new" authentication manager (which umbrella gratefully uses).

    The use case I'm thinking of is a multi-tenant environment, where uses can log in and create their own whatever and administer it. So it's not just a system administrators.

    Example

    bin/console make:registration

    Feature 
    opened by tacman 0
Releases(v6.1)
  • v6.1(Feb 13, 2022)

  • v5.0(Jan 9, 2022)

    • Menu :
      • Add url() and target() methods on MenuBuilder
    • DataTable :
      • Remove load_url option, use load_route and load_route_params option instead
      • Remove toolbar_class option, use toolbar_template to override class of toolbar template instead
      • Rename DetailsHandleColumnType column by DetailsColumnType
      • Remove CheckboxColumnType column and RadioColumnType column, use select option instead (can be multi, single or false). Set option select will automatically add an internal column with checkbox or radio.
      • Add setRowSelectable method for builder to determine if a row can be selected or not.
      • Remove ManyColumnType column (hard to use / customize).
      • Remove tree_state option, use tree_expanded option instead (can be true or false)
      • Add suffix Type to adapter type class.
      • Add DataTableActionState utils, to retrieve datatable state from an action (i.e : filter used, rows selected, columns order, ...)
      • option table_class replaced by class (revert)
      • option class replaced by container_class (revert)
      • Add option stripe_class to define stripe class of rows (ex : odd, even). Class table-striped is not used any more by default (cause glitch if datatable has extra rows).
    • DataTable (removed feature) :
      • Remove DragHandleColumnType, RowReorder helper, rowreorder_route and rowreorder_route_params options and remove rowReorder js datatable plugin.
    • Remove Widget component => Replaced by lightweight but more configurable Datatable\Action component:
      • Method addWidget / removeWidget / hasWidget doesn't exist anymore on Datatable builder. Use addAction / removeAction / hasAction instead
      • Remove WidgetColumnType column, use ActionColumnType column instead.
    • Fix
      • prevent open multiple confirm modal
    • Routing : Replace route annotation on vendor by config file (bundle best practice)
      • To load admin routes, you have to import:
        • @UmbrellaAdminBundle/config/routes/profile.php instead of @UmbrellaAdminBundle/config/routes/user_profile.yaml
        • @UmbrellaAdminBundle/config/routes/user.php + @UmbrellaAdminBundle/config/routes/security.php instead of @UmbrellaAdminBundle/config/routes/user.yaml
        • @UmbrellaAdminBundle/config/routes/notification.php instead of @UmbrellaAdminBundle/config/routes/notification.yaml
    Source code(tar.gz)
    Source code(zip)
  • v2.0(May 31, 2021)

    • [UI] Update admin theme
    • [UI] Use bootstrap 5
    • [UI] Upgrade profile view
    • [UI] Use toastify instead of toastr (abandonned lib)
    • [UI] Add menu search
    • [Symfony] Update symfony 5.3
    • [Form] Remove AsyncEntity2Type to AutoCompletType, rework Autocomplete (inspired by EasyAdmin)
    • [Security] Clean User managment, use Symfony 5.3 password hasher and user identifier
    • [Twig] Remove poor logic twig extension used to format html attribute
    • [DataTable] Add DataTable selection mode
    • [DataTable] Add DataTable row expander
    Source code(tar.gz)
    Source code(zip)
Owner
Adrien Cantepie
Symfony developer
Adrien Cantepie
Laralum - Laravel 5.3 Administration Panel

Laralum Legacy - Laravel 5.3 Administration Panel LARALUM LEGACY VERSION This is the legacy version of the currently laralum administration panel, fou

Erik C. Forés 92 Feb 13, 2022
An administration starter kit for Laravel.

Craftable About Demo Packages used Requirements Installation New project Add to existing project Basics Documentation Where to go next? About Hi Craft

BRACKETS 862 Jan 4, 2023
EasyPanel is a beautiful, customizable and flexible admin panel based on Livewire for Laravel.

EasyPanel EasyPanel is a beautiful, customizable and flexible admin panel based on Livewire for Laravel. Features : Easy to install Multi Language RTL

Reza Amini 529 Dec 29, 2022
Official website of Giada Loop Machine. Powered by NodeJS, SASS, Pug and other beautiful JavaScript machineries.

Giada WWW Official website of Giada Loop Machine, proudly powered by NodeJS, SASS, Pug and other beautiful JavaScript machineries. What is Giada? Giad

Monocasual Laboratories 14 Oct 7, 2022
Admin One is simple, beautiful and free Laravel admin dashboard (built with Vue.js, Bulma & Buefy).

Admin One — Free Laravel Vue Bulma Dashboard Admin One is simple, beautiful and free Laravel admin dashboard (built with Vue.js, Bulma & Buefy). Built

Viktor Kuzhelny 136 Dec 27, 2022
A Simple & Beautiful Pluggable Exception Viewer for FilamentPHP's Admin Panel

Filament Exception Viewer A Simple & Beautiful Exception Viewer for FilamentPHP's Admin Panel Installation You can install the package via composer: c

Bezhan Salleh 33 Dec 23, 2022
There is no better way to learn than by watching other developers code live. Find out who is streaming next in the Laravel world.

Larastreamers This is the repository of https://larastreamers.com. It shows you who is live coding next in the Laravel world. Installation Steps clone

Christoph Rumpel 201 Nov 24, 2022
Opinionated way to start a new Laravel project.

Laravel Boilerplate The way I start new Laravel projects. Why? I just got tired of repeating the same things over and over. I made this repository pub

Benjamin Crozat 0 Mar 18, 2022
Hack cPanel & WebMail accounts in a simple way!

cPanelPhishingScript We are not responsible for any actions you take with the program. Use with this risk in mind. General Features ❔ Data Logger ❌ Da

Azad Dogu 3 Feb 25, 2022
A Laravel 5.8 API Boilerplate to create a ready-to-use REST API in seconds.

Laravel API Boilerplate (JWT Edition) for Laravel 5.8 Laravel API Boilerplate is a "starter kit" you can use to build your first API in seconds. As yo

Francesco Malatesta 1.2k Dec 18, 2022
FacEssential is a Core for PMMP, it gathers all kind of plugins needed to create a faction server. It was created from scratch by Clouds#0667.

FacEssential FacEssential is a Core for PMMP, it gathers all kind of plugins needed to create a faction server. It was created from scratch by Clouds#

Zoumi 10 Jun 13, 2022
PinteClone - Pinterest clone using Symfony 5

PinteClone PinteClone can be used: to find the best picture that you need. Programming languages & Frameworks used: PHP Javascript Twig Css (Bootstrap

Iliass Alami Qammouri 3 Apr 26, 2021
Demo App for Symfony Twig & Live Components

Twig & Live Components Demo Hi there! You've stumbled across a treasure of demos for the the TwigComponent and LiveComponent libraries! Fun! If you wa

Ryan Weaver 48 Jun 27, 2022
Create (passwordless) login links for users

Generate login links for users Login links for Laravel is a package for Laravel 6, 7 and 8 that allows users to easily log in with a (one-time) login

null 13 Mar 29, 2022
With this package you can create wallet for the users.

Laravel User Wallet With this package you can create wallet for the users. Note: Make sure you've already installed php ^8 Installation Install the pa

Mahbod Ahmadi 6 Feb 20, 2022
This package adds artisan commands to create VueJS components and InertiaJS components.

Laravel Vue Commands This package adds artisan commands to create VueJS components and InertiaJS components. Installation You can install the package

ArielMejiaDev 3 Sep 10, 2021
a laravel package to create dynamically dashboard views in several templates ( in development)

Laravel Dashboarder A laravel package for generate admin dashboard dynamically based on Tabler template use livewire - alpinejs Installation Run the c

Laravel Iran Community 7 Dec 12, 2022
Automatically Create professional ready to use Laravel REST API for MySQL Database With Postman Docs and JWT Authentication

Laravel Simple Rest API Generator An API Boilerplate to create a ready-to-use REST API in seconds with Laravel 8.x Install with Composer $ curl -s

null 5 Mar 12, 2022
How to Create Laravel 8 Vue JS CRUD Example

About Project How to Create Laravel 8 Vue JS CRUD, how to implement vue js crud example with Laravel 8. how to Create a crude API in Laravel 8, for ex

Fadi Mathlouthi 1 Oct 22, 2021