
Github地址 欢迎大家一起维护:)
Demo源码
有内容列表的文章更方便阅读 见这里
另团队急需人才,有兴趣的朋友请联系 [email protected] 或 QQ 1283233833 ,待遇高过同等大公司,阿姨做饭,春节假期前后各一周可在家远程办公,公司地点在团结湖盈科中心。
php artisan make:model Tag --migration

php artisan make:controller Tag/TagController
Route::group(['prefix'=>'admin'],function(){ Route::resource('tags','Tag\TagController'); }); 
打开 config/forone.php 并添加标签管理配置
'menus' => [ '标签管理' => [ 'active_uri' => 'roles', 'icon' => null, 'permission_name' => 'admin.roles.index', 'route_name' => 'admin.tags.index', 'is_redirect' => true, ], 'nav_titles' => [ 'admin.tags.index' => '标签管理', 'admin.tags.create' => '新建标签', 'admin.tags.edit' => '编辑标签', 'admin.tags.show' => '查看标签', ], 通过URI和NAME进行view渲染、页面跳转等配置,需要Controller扩展自Forone的BaseController
use Forone\Admin\Controllers\BaseController class TagController extends BaseController { const URI = 'tags'; const NAME = '标签'; function __construct() { parent::__construct(); view()->share('page_name', self::NAME); view()->share('uri', self::URI); } 通过 columns 的配置进行数据列表的配置,通过items进行分页数据填充
public function index() { $results = [ 'columns' => [ ['编号', 'id'], ['标签名', 'name'], ['创建时间', 'created_at'], ['更新时间', 'updated_at'], ['操作', 'buttons', function ($data) { $buttOns= [ ['查看'], ['编辑'], ]; return $buttons; }] ] ]; $paginate = Tag::paginate(); $results['items'] = $paginate; return $this->view(self::URI.'.index',compact('results')); } 在 resources/views/tags/ 目录下创建 index.blade.php 文件,作为数据列表页模板
@section('main') {!! Html::list_header([ 'new'=>true, ]) !!} {!! Html::datagrid($results) !!} @stop 然后数据列表页就完成了
public function create() { return $this->view(self::URI.'.create'); } public function store(CreateTagRequest $request) { $data=$request->only('name'); Tag::create($data); return redirect()->route('admin.'.self::URI.'.index'); } 使用 Tag::create方法存储数据需要编辑model的Tag.php
protected $guarded = array(); 在 resources/views/tags/ 目录下创建 create.blade.php 文件,作为数据编辑页模板,并创建 form.blade.php 作为创建、编辑、查看的通用form表单模板
其中form模板为
{!! Form::group_text('name','标签名','请输入标签名') !!} create模板为
@extends('forone::layouts.master') @section('title', '新建'.$page_name) @section('main') {!! Form::panel_start('新建'.$page_name) !!} @if (Input::old()) {!! Form::model(Input::old(),['url'=>'admin/'.$uri,'class'=>'form-horizontal']) !!} @else {!! Form::open(['url'=>'admin/'.$uri,'class'=>'form-horizontal']) !!} @endif @include($uri.'.form') {!! Form::panel_end('保存') !!} {!! Form::close() !!} @stop 点击 "新建" 按钮后看到新建页面
CreateTagRequest验证请求
规则如下
public function rules() { return [ 'name' => 'required|max:50|unique:tags', ]; } public function messages() { return [ 'name.required' => '标签名称不能为空', 'name.unique' => '标签名称不能重复', 'name.max' => '标签名称长度小于50', ]; } 点击"保存"
public function show($id) { $data = Tag::findOrFail($id); if ($data) { return view(self::URI."/show", compact('data')); }else{ return $this->redirectWithError('数据未找到'); } } show.blade.php模板@extends('forone::layouts.master') @section('title', '查看'.$page_name) @section('main') {!! Form::model($data,['url'=>Request::url().'/edit','class'=>'form-horizontal', 'method'=>'GET']) !!} @include('tags.form', ['show'=>true]) {!! Form::close() !!} @stop 点击"查看"
public function edit($id) { $data = Tag::find($id); if ($data) { return view(self::URI."/edit", compact('data')); } else { return $this->redirectWithError('数据未找到'); } } public function update(UpdateTagRequest $request, $id) { $data = $request->only(['name']); Tag::findOrFail($id)->update($data); return redirect()->route('admin.tags.index'); } @extends('forone::layouts.master') @section('title', '更新'.$page_name) @section('main') {!! Form::panel_start('编辑'.$page_name) !!} {!! Form::model($data,['method'=>'PUT','route'=>['admin.'.$uri.'.update',$data->id],'class'=>'form-horizontal']) !!} @include($uri.'.form') {!! Form::panel_end('保存') !!} {!! Form::close() !!} @stop 点击“编辑”
点击“保存”
