laravel学习day 2 - section 1: 组件,l

2019-02-14  本文已影响0人  妙啊啦

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,value, 是全域的,所以这里我们用一个全域error来展示

@if(count($errors) > 0) 
    @foreach ($errors->all() as $error)
        <div class="alert alert-danger">
            {{$error}} 
        </div>
@endforeach @endif
上一篇 下一篇

猜你喜欢

热点阅读