Laravel中如何通过路由传值并赋值给模态框编辑文本框?
解决Laravel路由传值到模态框编辑的问题
你已经有了核心思路,但目前的代码没把$abc的数据传递到视图的Session中,所以输入框拿不到对应值。我来帮你调整完善:
1. 修改控制器代码,传递数据到Session
在重定向时,除了传递弹窗触发标记,还要把查询到的属性类型数据存入一次性Session:
public function edit($id) { $abc = property_type::find($id); // 同时传递弹窗标记和属性数据到Session return redirect('/admin/property-type') ->with('popup','open') ->with('propertyData', $abc); }
2. 视图中绑定数据到对应输入框
因为$abc是Eloquent对象,你需要分别取出它的name和description属性赋值给输入框,同时添加空值兜底避免报错:
<!-- 名称输入框 --> <input type="text" class="form-control" value="{{ Session::get('propertyData')->name ?? '' }}" name="update_prop_name"> <!-- 描述输入框 --> <input type="text" class="form-control" value="{{ Session::get('propertyData')->description ?? '' }}" name="update_prop_desc">
3. 确保模态框自动弹出
加上JS逻辑,当Session里存在popup标记时自动打开模态框(假设你的模态框ID是editPropertyModal):
@if(Session::has('popup') && Session::get('popup') === 'open') <script> $(document).ready(function() { $('#editPropertyModal').modal('show'); }); </script> @endif
补充说明
- Laravel的
redirect()->with()方法会把数据存入一次性Session,这些数据仅在接下来的一次请求中有效,非常适配这种跳转后弹窗的场景。 - 使用
?? ''是为了兜底:如果用户直接访问该页面而非通过edit路由跳转,不会因propertyData不存在而抛出属性错误。
内容的提问来源于stack exchange,提问作者Sarita Sharma
相关产品推荐
相关产品推荐

