laravel collective
网站 https://laravelcollective.com/
安装
在composer.json 中添加 , "laravelcollective/html": "~5.0", 如下
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.7.*",
"laravel/tinker": "^1.0",
"laravelcollective/html": "~5.0"
},
并且在terminal 中运行
composer update
增加providers
'providers' => [
// ...
Collective\Html\HtmlServiceProvider::class,
// ...
],
** 最后,增加alias**
'aliases' => [
// ...
'Form' => 'Collective\Html\FormFacade',
'Html' => 'Collective\Html\HtmlFacade',
// ...
],
******************************************** 这个是分割线 ********************************************
添加一个form
{!! Form::open(array('url' => 'contact/submit')) !!}
<div class="form-group">
{{Form::label('username', 'username')}}
{{Form::text('username', '', ['class'=>"form-control", 'placeholder'=>"enter your username"])}}
{{-- name, value, [class, placeholder] --}}
</div>
<div class="form-group">
{{Form::label('email', 'E-Mail Address')}}
{{Form::text('email', '', ['class'=>'form-control', 'placeholder'=>"enter your email"])}}
</div>
<div class="form-group">
{{Form::label('message', 'Message')}}
{{Form::textarea('message', '', ['class'=>'form-control', 'placeholder'=>"enter your message"])}}
</div>
<div>
{{Form::submit("Submit", ['class'=>'btn btn-primary'])}}
</div>
{!! Form::close() !!}
******************************************** 这个是分割线 ********************************************
controller 和 route的设置
提交表格,router中设置
Route::post('/contact/submit', 'MessageController@submit');
创建controlelr: terminal中运行
php artisan make:controller MessageController
controller 的文件夹在app/http下面的controllers folder中,下图阐述了router和controller的基本关系
Screen Shot 2019-02-14 at 15.25.26 pm.png
******************************************** 这个是分割线 ********************************************
构建controller
写一个 submit controller,并且获取username的value
class MessageController extends Controller
{
public function submit(Request $request){
// 接受的是一个 class
return $request->input('username');
}
}
form 和 controller的关系,对应如下图
Screen Shot 2019-02-14 at 15.32.24 pm.png
******************************************** 这个是分割线 ********************************************
form 的 validation
在controller中实现
public function submit(Request $request){
$this->validate($request, [
'name'=>'required',
'email'=>'required',
]);
return "success" // 先在这里return success,之后会添加页面
}
全域error显示
这里要说一下,laravel里面,其实是php里面,有一种value,error来展示
@if(count($errors) > 0)
@foreach ($errors->all() as $error)
<div class="alert alert-danger">
{{$error}}
</div>
@endforeach @endif
网友评论