欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Laravel Forms 使用

程序员文章站 2022-05-30 16:32:33
...
laravel5.2框架里,默认不带form模块,所以需要自己安装,参考:from模块安装

在路由里面添加新的路由app/Http/routes.php

Route::get('/articles','ArticlesController@index');Route::get('/articles/create','ArticlesController@create');//因为下面的{id}能够传入所有作为id的参数到show方法,所以需要先将create路由放在他的上面,这样在访问的时候,会优先匹配create路由,然后再到下面的Route::get('/articles/{id}','ArticlesController@show');Route::post('/articles/store','ArticlesController@store');//使用一个post路由,这个路由是为了处理create页面提交过来的表单的

在controller里面添加新的controllerapp/Http/Controllers/ArticlesController.php

    public function create(){  // create方法,指向create.blade.php,        return view('articles.create');    }    public function store(Request $requests){      //store方法是接受create页面提交的数据的处理方法,这个Request $requests是注入实例,需要在页面use这个类Illuminate\Http\Request        $input = $requests->all();  //获取request请求的所有数据        $input['publish_at']=Carbon::now();        Articles::create($input);//通过create方法写入数据库        return redirect('/articles'); //写入后重定向到首页    }

resources/views/articles/create.blade.php

@extends('layout.app')@section('content')    {!! Form::open(array('url' => '/articles/store')) !!}  //form表单提交的地址就是我们store路由        
{!! Form::label('title', 'Title:') !!} {!! Form::text('title', null, ['class' => 'form-control']) !!} {!! Form::label('content','content:') !!} {!! Form::textarea('content',null,['class'=>'form-control']) !!} {!! Form::submit('submit',['class'=>'btn btn-primary form-control']) !!}
//这些都是laravelcollective html 和form模块的使用方法//{!! !!}是blade引擎的写法,主要是为了防止代码直接被解析为html,详情参考https://laravel.com/docs/5.2/blade {!! Form::close() !!}@stop

这是对应的html模板源码

Laravel
//action里面指向了我们的store路由,laravel自带了一个隐藏_token避免一些跨站提交

本文由 PeterYuan 创作,采用 署名-非商业性使用 2.5 * 进行许可。 转载、引用前需联系作者,并署名作者且注明文章出处。神一样的少年 »Laravel Forms 使用