d4nd3v/crud

Laravel 5 CRUD Generator

dev-master 2017-12-04 10:27 UTC

This package is not auto-updated.

Last update: 2025-02-09 09:56:16 UTC


README

Usage

Step 1: Install Through Composer

composer require d4nd3v/crud:dev-master

Step 2: Add the Service Provider

Add the provider in app/Providers/AppServiceProvider.php

public function register()
{
    ...
	if ($this->app->environment() !== 'production') {
		$this->app->register('D4nd3v\Crud\CrudServiceProvider');
	}
}

Step 3: Run Artisan!

Run php artisan generate:crud TABLE_NAME from the console.

Options examples

--crud=RD => all actions without C-reate and U-pdate
--many_with adds:
  • in model: ...$this->belongsToMany...
  • in controller: ...->sync(request()->input(....
  • in index view: ...list from MNY_TBL...
  • in create and edit view: ...js select2 MNY_TBL...

Notes

If you need pagination don't forget to run:
php artisan vendor:publish --tag=laravel-pagination

The generated files are:

  • app/Http/Controllers/Crud/[Resource]Controller.php
  • app/Models/[Resource].php
  • resources/views/[Resource]/create.blade.php
  • resources/views/[Resource]/edit.blade.php
  • resources/views/[Resource]/index.blade.php
  • resources/views/[Resource]/view.blade.php
  • + added route resource in routes/web.php

####For User Roles (or any other filter)####

in ```UsersController.php````

	$orderBy = $request->input('by', 'id');
	....
		$roles = array();
		if (class_exists(Role::class)) {
			$roles = Role::get();
		}
		if(!empty(request()->input('role'))) {
			$items = User::role(request()->input('role'))->orderBy($orderBy, $order)->paginate(20);
		} else {
			$items = User::orderBy($orderBy, $order)->paginate(20);
		}
		
        return view('users.index')
            ->withItems($items)
            ->withPage($request->input('page', 1))
            ->withOrder($order)
            ->withOrderBy($orderBy)
            ->withRoles($roles);

in index.blade.php

	@section('content')
	.....
	@if($roles)
		<a href="?role=">all</a>
		@foreach($roles as $role)
			&nbsp; <a href="?role={{ $role->name }}"
					  @if(request()->input('role')==$role->name) class="active" @endif
			>{{ $role->name }}</a>
		@endforeach
		<hr>
	@endif