我有这个基于拉威尔雄辩的下拉列表,我有点想要使用它拥有的数据。名称和身份证明。为了清楚地显示这一点,这是我的控制器中的代码片段
$modules = prchorder::lists('ModuleName','ModuleID');
然后我在我的视图中使用了这个:
{{ Form::label('module', 'Select Module: ') }}
{{ Form::select('ModuleInfo', array(null=>'Please Select Module') + $modules , Input::old('ModuleInfo'), array('class'=>'form-control'))}}
现在的问题是我需要同时获得' ModuleName'以及' ModuleID'因为我会在用户点击提交时在控制器内的商店功能中使用它。我知道,当我这样做
$module = Input::get('ModuleInfo');
我将获得的唯一数据是ModuleID。有什么办法我也可以获得ModuleName吗?有什么建议吗?
答案 0 :(得分:1)
HTML规范不允许提交<option>
标记的value属性以外的任何内容。
虽然您可以使用分隔符将所有数据放入此属性,但可能不明智。最好的方法是使用ID来检索控制器中处理表单提交所需的其他数据。
例如
<select name="module_id">
<option value="1">Module Id 1</option>
</select>
然后,您可以使用
检索控制器中所选模块的信息// based on your model in your question
prchorder::find(Input::get('module_id'));
// Or just using query builder
$rows = DB::table('table')->select(['columns'])->where('module_id', Input::get('module_id'))->get();
// Also, look at the ->first() method instead of ->get()
// if you only expect a single result. i.e. one module
还有一些关于Query Builder manual page的查询构建器(包括评论中提到的联接)的更多信息。