您好,欢迎访问一九零五行业门户网

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

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

假设你返回给blade模板引擎一个模型变量$post,同时使用了web中间件(session支持),你可以这样共用一个form.blade.php,:
一、保留旧的输入项目(使用old方法),比如提交表单,但验证失败,页面在提交刷新后,保留上次提交数据
title : '') }}>
二、不需要保留旧的输入项目
title : '' }}>
写两份或者在需要的地方检查变量是否存在
不需要写两份,
新建一个form.blade.php,存储表单选项,用isset判断是否存在再输出,或者你用forms & html builder更容易
如果是自己写的input表单,那么这样写:

如果使用了laravel的form ,那么将更加简洁:
在 create.blade.php中:
{!! form::open(['url'=>'article']) !!} @include('article._form', ['submitbutton'=>'添加文章']){!! form::close() !!}
在edit.blade.php中
{!! form::model($article, ['method'=>'patch', 'url'=>['article', $article->id]]) !!} @include('article._form', ['submitbutton'=> '修改文章']){!! form::close() !!}
那么,需要一个公共的表单部分:_form.blade.php,就是表单部分
我觉得不要为了使用一个框架而使用一个框架,laravel为我们提供了很多的便捷的操作,如果在使用这款框架,就应该试着去接受他们
其它类似信息

推荐信息