任务36:完成分类的添加及验证
1, 编辑 \resources\views\Admin\Cate\add.blade.php 完整代码如下
@extends('Admin.Layout.main') @section('content') <!-- Page Breadcrumb --> <div class="page-breadcrumbs"> <ul class="breadcrumb"> <li> <a href="#">系统</a> </li> <li> <a href="#">栏目管理</a> </li> <li class="active">添栏目</li> </ul> </div> <!-- /Page Breadcrumb --> <!-- Page Body --> <div class="page-body"> @include('Admin.Layout.msg') <div class="row"> <div class="col-lg-12 col-sm-12 col-xs-12"> <div class="widget"> <div class="widget-header bordered-bottom bordered-blue"> <span class="widget-caption">新增栏目</span> </div> <div class="widget-body"> <div id="horizontal-form"> <form class="form-horizontal" role="form" action="{{route('admin.cate.add')}}" method="post"> @csrf <div class="form-group"> <label for="username" class="col-sm-2 control-label no-padding-right">栏目名</label> <div class="col-sm-6"> <input class="form-control" id="username" placeholder="" name="username" required="" type="text"> </div> <p class="help-block col-sm-4 red">* 必填</p> </div> <div class="form-group"> <label for="username" class="col-sm-2 control-label no-padding-right">关键词</label> <div class="col-sm-6"> <input class="form-control" id="keywords" placeholder="" name="keywords" required="" type="text"> </div> </div> <div class="form-group"> <label for="username" class="col-sm-2 control-label no-padding-right">描述</label> <div class="col-sm-6"> <textarea class="form-control" id="description" name="description" ></textarea> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-default">保存信息</button> </div> </div> </form> </div> </div> </div> </div> </div> </div> <!-- /Page Body --> @endsection
浏览器访问 http://laravel.pensive.top/admin/cate/add# 效果如下

2,栏目表 字段
a,编辑cate的迁移文件 \database\migrations\2020_05_19_010100_create_cates_table.php 的up()方法 改成如下
public function up() { Schema::create('cates', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('cate_name',200)->default('')->comment('分类名'); $table->string('keywords',300)->default('')->comment('关键词'); $table->string('description',500)->default('')->comment('描述'); $table->timestamps(); $table->softDeletes(); }); }
b,编辑 \app\Models\Admin\Cate.php 如下
<?php namespace App\models\Admin; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; class Cate extends Model { use SoftDeletes; protected $dates = ['delete_at']; protected $guarded = []; //把不能往数据表添加的字段设为空,如:@crsf 创建的token隐藏字段 }
c,命令行 执行,重新生成所有表,并多了 cates 表
php artisan migrate:refresh --seed
如下示:


3,app\Http\Requests\CateRequest.php 修改为:
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class CateRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { $id = $this->route('id'); return [ "cate_name" => 'required|unique:cates,cate_name,'.$id, ]; } public function messages() { return [ "cate_name.required" => "分类名不能为空", "cate_name.unique" =>"分类名不能重复", ]; } }
4, App\Http\Controllers\Admin\CateController.php 修改方法 addSave()
public function addSave(CateRequest $request){//Request $request 依赖注入 //dd($request->all()); //打印接收到的数据 $Cate = Cate::create($request->all()); //Cate模型create对象往数据表添加数据 if($Cate->id){ return redirect()->route('admin.cate.index')->with('success-msg','添加栏目成功!'); }else{ return redirect()->route('admin.cate.index')->with('danger-msg','添加栏目失败!'); } }
5,浏览器访问 http://laravel.pensive.top/admin/cate/add 可正常添加 栏目了。



浙公网安备 33010602011771号