Laravel Forms 使用

新增新闻页

路由

/app/Http/routes.php

    Route::get('/news/create', 'NewsController@create'); //新建页面

创建方法

/app/Http/Controllers/NewsControllers.php

    public function create(){
        return view('news.create');
    }

composer 安装 illuminate/html (form插件)

composer require illuminate/html

配置

    return [
        'providers' => [
            Illuminate\Html\HtmlServiceProvider::class,
        ],
        'aliases' => [
            'Form' => Illuminate\Html\FormFacade::class,
        ]
    ]

交换位置,优先匹配 /news/create 这个路由

    Route::get('/news', 'NewsController@index'); // 列表    
    Route::get('/news/create', 'NewsController@create'); //新建页面
    Route::get('/news/{id}', 'NewsController@show');

新增提交表单 的路由

注意这里是post请求

    Route::post('/news','NewsController@store');

模板form 添加提交地址

    {!! Form::open(['url'=>'news/']) !!}

News控制器

    public function store(Request $request) {
        $input                 = $request->all(); //接收post数据
        $input['published_at'] = Carbon::now(); //生成时间
        News::create($input); //调用model的create方法, 写入数据库
        return redirect('/news'); //重定向
    }

index 以添加时间排序

    public function index() {
        // $result = News::all();
        $result = News::latest()->get(); //以添加时间排序
        return view('news.index', compact('result'));
    }

直接接收post值 进行操作(省略published_at)

    public function store(Request $request) {
        News::create($request->all()); //调用model的create方法, 写入数据库
        return redirect('/news'); //加载列表页
    }

模板生成 选择html

<div class="form-group">
{!! Form::label('创建时间','创建时间') !!}
{!! Form::input('date', 'published_at', date('Y-m-d'), ['class'=>'form-control']) !!}
<!-- 参数1 input类型 -->
<!-- 参数2 字段name -->
<!-- 参数1 用PHP date函数, 赋初始值 -->
</div>

results matching ""

    No results matching ""