任务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
View Code

浏览器访问 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" =>"分类名不能重复",


        ];
    }
}
View Code

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 可正常添加 栏目了。

 

posted @ 2020-05-19 15:35  pensive2019  阅读(245)  评论(0)    收藏  举报