laravel day5 section 1: create in the controller

今天我们要来说一下create这个function

之前我们用的是todo,url为 localhost:8000/todos/show,
同理,我们今天的就是localhost:8000/todos/create,

step 1:
既然涉及到了form,那我们就可以之间用laravel collective
首先安装laravelcollective

composer require "laravelcollective/html":"^5.4.0" -vvv       

step 2
在config/app.php文件中中导入
···
Collective\Html\HtmlServiceProvider::class,
···
并在allia中添加

'Form' => Collective\Html\FormFacade::class, 
'Html' => Collective\Html\FormFacade::class, 

===================================================================
下面我们需要来创建一个form,但是,我们并不想在html里面创建,我们更想用compoennt的方式,
比如,每一个input都是一个component,足后把她们组合起来
首先我们需要一个服务的提供者
现在我们需要创建一个provider(用于提供form service 这个服务,用于控制不同的form inut组件,是一种component的概念)

php artisan make:provider FormServiceProvider 

step 2
在provider中,我们需要创建我们需要的表单中的输入,我们需要,一个input,一个textarea,当然,我们还需要一个submit

在provider中,我们首先需要use一个东西,叫做form,然后在boot里面,我们创建form里面我们需要的元素

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Form;

class FormServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        Form::component('bsText', 'components.form.text', ['name', 'value' => null, 'attributes' => []]);
        Form::component('bsTextArea', 'components.form.textarea', ['name', 'value' => null, 'attributes' => []]);
        Form::component('bsSubmit', 'components.form.submit', ['value' => 'Submit', 'attributes' => []]);
    }
}

step 2: 创建component
之前我们说过,要用component的思想,那么每个input就是一个component
在views/component/form里面创建,这个路径不能错,因为laravel回到这个里面来找omponent
根据刚才的三个,我们创建了,text,textarea,submit的三个元素
text.blade.php

<div class="form-group">
    {{ Form::submit($value, $attributes)}}
</div>

textarea.blade.php

<div class="form-group">
    {{ Form::label($name, null, ['class' => 'control-label']) }}
    {{ Form::textarea($name, $value, array_merge(['class' => 'form-control'], $attributes)) }}
</div>

submit.blade.php

<div class="form-group">
    {{ Form::submit($value, $attributes)}}
</div>
···

step 3,整合form
现在我们需要调用之前的每一个input,
并且提交给controller里面的store,也就是之前我们resource出来的那个
bstext括号里面我们所输入的就是input的name,之后我们的获取会调用这个名字

{!! Form::open(array('action' => 'todolistController@store', 'method' => 'POST')) !!}
{{ Form::bsText('text') }}
{{ Form::bsTextArea('body') }}
{{ Form::bsText('due date') }}
{{ Form::bsSubmit('submit', ['class'=>'btn btn-primary']) }}
{!! Form::close() !!}

step 4: 关于提交表格,
回到controller中
public function store(Request $request)
{
    echo $request->text;
    return "submitted";
}
现在我们题哦叫submit的时候就会自动弹出submmit页面
恭喜









©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Laravel 学习交流 QQ 群:375462817 本文档前言Laravel 文档写的很好,只是新手看起来会有...
    Leonzai阅读 12,518评论 2 12
  • 文章分类 后台文章分类列表页模板导的详细步骤建立数据表blog_category,并添加相应的文章字段使用php ...
    JoyceZhao阅读 5,707评论 0 14
  • 介绍 Laravel 是一款 MVC架构、 目前最流行的 PHP框架。 Laravel的优点在于: 丰富的comp...
    那就远走阅读 12,461评论 3 18
  • 本文转自CSDN,在原作者基础上将老版本laravel的目录更正为最新laravel5.4目录,去除了不太好理解的...
    小小奶狗阅读 6,159评论 6 10
  • 今晚的课程推荐好友赠礼物,以前做过这样的 前两天也有做送拖鞋的活动 送过包包 发红包之类的都做过,芳老师讲的扫街也...
    420535704909阅读 1,475评论 0 0