onkbear/backpack-nested-crud
最新稳定版本:2.0.2
Composer 安装命令:
composer require onkbear/backpack-nested-crud
包简介
README 文档
README
This package gives nested CRUD operations on your edit page.
Inspired by Nested resources in Backpack CRUD
E.g.
Gives the avility of CRUD operations of comment model as a field on user edit page.
For Laravel-Backpack/CRUD v4.0, please use ^1.1.
Install
composer require onkbear/backpack-nested-crud
Usage
There are four (instead of create, read, update, delete) nested CRUD operations.
use \Onkbear\NestedCrud\app\Http\Controllers\Operations\NestedListOperation; use \Onkbear\NestedCrud\app\Http\Controllers\Operations\NestedCreateOperation; use \Onkbear\NestedCrud\app\Http\Controllers\Operations\NestedUpdateOperation; use \Onkbear\NestedCrud\app\Http\Controllers\Operations\NestedDeleteOperation;
Example
Please create User model and Comment model with relationship.
Please create UserCrudController.
class UserCrudController extends CrudController { use \Backpack\CRUD\app\Http\Controllers\Operations\ListOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation; public function setup() { CRUD::setModel('App\Models\User'); CRUD::setRoute(config('backpack.base.route_prefix').'/user'); CRUD::setEntityNameStrings('user', 'users'); } protected function setupListOperation() { CRUD::addColumns(['name']); } protected function setupCreateOperation() { CRUD::addField([ 'name' => 'name', 'label' => 'Name', 'type' => 'text', 'tab' => 'Texts', ]); } protected function setupUpdateOperation() { $this->setupCreateOperation(); CRUD::addField([ 'name' => 'comments', 'label' => 'Comment', 'type' => 'nested_crud', 'target' => 'comment', 'model' => 'App\Models\Comment', 'tab' => 'Comments', // optional ]); } }
Create the CRUD controller
use App\Http\Requests\CommentRequest as StoreRequest; use App\Http\Requests\CommentRequest as UpdateRequest; class UserCommentCrudController extends CrudController { use \Onkbear\NestedCrud\app\Http\Controllers\Operations\NestedListOperation; use \Onkbear\NestedCrud\app\Http\Controllers\Operations\NestedCreateOperation; use \Onkbear\NestedCrud\app\Http\Controllers\Operations\NestedUpdateOperation; use \Onkbear\NestedCrud\app\Http\Controllers\Operations\NestedDeleteOperation; public function setup() { // set the Eloquent object CRUD::setModel(\App\Models\Comment::class); // get the user_id parameter $userId = \Route::current()->parameter('user_id'); // set a different route for the admin panel buttons CRUD::setRoute(config('backpack.base.route_prefix').'/user/'.$userId.'/comment'); // show only specific user's comments CRUD::addClause('where', 'user_id', $userId); // ... } protected function setupNestedListOperation() { // ... } protected function setupNestedCreateOperation() { CRUD::setValidation(StoreRequest::class); // get the user_id parameter $userId = \Route::current()->parameter('user_id'); // add a foreign key field as a hidden field (may need only for create operation) CRUD::addField([ 'name' => 'user_id', 'type' => 'hidden', 'value' => $userId ]); // ... } protected function setupNestedUpdateOperation() { CRUD::setValidation(UpdateRequest::class); // ... }
Add the route
Setup the route in route/custom.php
Route::crud('user/', 'UserCrudController'); Route::group(['prefix' => 'user/{user_id}'], function() { Route::crud('comment', 'UserCommentCrudController'); });
You have following routes.
admin/user/admin/user/{user_id}/comment/
That's it.
You can also use backpack operations into UserCommentCrudController or extend CommentCrudController if it is exist.
Customize views for list view
There are two templates for list view.
nested_crud::nested_list: table view (default)nested_crud::nested_grid_list: grid view
If you would like to use grid view, simply use the set method below.
// UserCommentCrudController.php protected function setupNestedListOperation() { $this->crud->setListView('nested_crud::nested_grid_list'); }
If you created view files with exact same name in resources/views/vendor/backpack/nested_crud folder, it will override.
统计信息
- 总下载量: 8.32k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 21
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-11-14

