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里面我们需要的元素

 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

{{ Form::submit($value, $attributes)}}

textarea.blade.php

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

submit.blade.php

{{ Form::submit($value, $attributes)}}
··· 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 day5 section 1: create in the controller)