oldy/crud-module

There is no license information available for the latest version (v0.1) of this package.

Crud module to fast

Installs: 34

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:laravel-module

v0.1 2018-02-23 11:20 UTC

This package is auto-updated.

Last update: 2024-05-16 17:24:48 UTC


README

Laravel Crud Module

Install

Execute the following command in your terminal

composer require oldy/crud-module

Or add this line in your composer.json file

require": {
...
"oldy/crud-module" : "dev-master"
}

And execute the following command in your terminal

composer update

Usage

Данный пакет предоставляет общие функции для быстрого создания CRUD на основе модели и формы.

В первую очередь необходимо создать модель. По умолчанию модель будет искаться в каталоге Entity, но это расположение можно изменить в конфиге

'models_folder' => 'Entities',

Далее необходимо создать класс формы для вывода. По умолчанию форма будет искаться в каталоге Http\Forms, это расположение тоже можно поменять в конфиге

'forms_folder' => 'Http\\Forms'

Небольшой пример клсса формы

namespace Modules\Users\Http\Forms;

use Kris\LaravelFormBuilder\Form;
use Modules\Users\Entities\User;

class GroupForm extends Form
{
    public function buildForm()
    {
        $this
            ->add('title', 'text', [
                'rules' => 'required|min:3',
                'label' => 'Название'
            ])
            ->add('text', 'textarea', [
                'label' => 'Описание'
            ])

            ->add('users',  'entity', [
                'label' => 'Пользователи',
                'class' => User::class,
                'multiple' => true,
                'selected' => function ($data) {
                    return $data ? array_pluck($data, 'id') : [];
                },
                'attr' => [
                    'class' => 'multi-select'
                ]
            ])
        ;

    }

}

Важно заметить: что бы модели и формы подгружались автоматически они должны именоваться следующим образом.

  • Название модели - это название контроллера в единственном числе
  • Название формы - это Название контроллера в единственном числе + постфикс Form. Например GroupForm

Теперь создаем контроллер. Класс контроллера наследуются от родительского класса CrudController

namespace Modules\Users\Http\Controllers;


use Modules\Crud\Http\Controllers\CrudController;

class GroupsController extends CrudController
{
    protected $titles = ['Группы доступа', 'группы'];

    protected $relations = ['users'];

}

$titles - содержит массив названий, 1 - для списка, 2- для добавления/редактирования

$relations - содержит массив со связями, которые необходимо подгружать/обновлять

После этого прописываем роут

Route::resource('/group', Modules\Users\Http\Controllers\GroupsController);

И CRUD готов.