使用来自下拉列表中的两个数据,这些数据基于laravel 4.2中的eloquent列表

时间:2015-09-26 16:19:55

标签: laravel laravel-4 eloquent

我有这个基于拉威尔雄辩的下拉列表,我有点想要使用它拥有的数据。名称和身份证明。为了清楚地显示这一点,这是我的控制器中的代码片段

$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吗?有什么建议吗?

1 个答案:

答案 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的查询构建器(包括评论中提到的联接)的更多信息。