Heim >Backend-Entwicklung >PHP-Tutorial >Laravel的create页面和edit页面共用表单,但是edit页面有变量,create页面没有变量,能否共用?

Laravel的create页面和edit页面共用表单,但是edit页面有变量,create页面没有变量,能否共用?

WBOY
WBOYOriginal
2016-06-06 20:11:411082Durchsuche

Laravel的create页面和edit页面共用表单,
但是edit的view页面有变量,就是从控制器中把查询出来的内容,然后return到view,
而create的控制器,是没有数据返回的,
这样,共用表单就会在create时报错,说有未定义的变量,
怎么破?

回复内容:

Laravel的create页面和edit页面共用表单,
但是edit的view页面有变量,就是从控制器中把查询出来的内容,然后return到view,
而create的控制器,是没有数据返回的,
这样,共用表单就会在create时报错,说有未定义的变量,
怎么破?

直接一份就可以了

<code><input name="end" value="{{isset($data['end'])?$data['end']:''}}" type="text" id="end_time" placeholder=""></code>

假设你返回给blade模板引擎一个模型变量$post,同时使用了web中间件(session支持),你可以这样共用一个form.blade.php,:

一、保留旧的输入项目(使用old方法),比如提交表单,但验证失败,页面在提交刷新后,保留上次提交数据

<code><input type="text" name="title" id="title" value="{{ ! empty(old('title')) ? old('title') : (isset($post) ? $post->title : '') }}"></code>

二、不需要保留旧的输入项目

<code><input type="text" name="title" id="title" value="{{ isset($post) ? $post->title : '' }}"></code>

写两份或者在需要的地方检查变量是否存在

不需要写两份,
新建一个form.blade.php,存储表单选项,用isset判断是否存在再输出,或者你用Forms & HTML builder更容易

如果是自己写的input表单,那么这样写:

<code><input type="text" value="{{$s or ''}}">
</code>

如果使用了laravel的Form ,那么将更加简洁:
create.blade.php中:

<code>{!! Form::open(['url'=>'article']) !!}
        @include('article._form', ['submitButton'=>'添加文章'])
{!! Form::close() !!}</code>

edit.blade.php

<code>{!! Form::model($article, ['method'=>'PATCH', 'url'=>['article', $article->id]]) !!}
        @include('article._form', ['submitButton'=> '修改文章'])
{!! Form::close() !!}</code>

那么,需要一个公共的表单部分:_form.blade.php,就是表单部分

我觉得不要为了使用一个框架而使用一个框架,laravel为我们提供了很多的便捷的操作,如果在使用这款框架,就应该试着去接受他们

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:新学语言,选GO还是PythonNächster Artikel:ci用户代理