Laravel 4 从数据库中获取下拉表单的信息

Posted

技术标签:

【中文标题】Laravel 4 从数据库中获取下拉表单的信息【英文标题】:Laravel 4 getting information from database for drop-down form 【发布时间】:2013-08-20 16:38:30 【问题描述】:

我正在尝试制作一个简单的身份验证应用程序,并且我已经准备好登录/注册表单并且它工作正常。但是,我在填充另一个表中的邮政编码的下拉字段时遇到问题。我不确定我应该如何处理这个问题。大多数时候我只会使用直接的 mysql 查询,但我假设有一种更简单的方法。

控制器:(希望 zip_code 表放在这里。)

        public function getSignUp() 
            $userdata = array(
            'email' => Input::get('email'),
            'password' => Hash::make(Input::get('password'))
            );
            $user = new User($userdata);
            $user->save();

            return Redirect::to('dashboard');
    

路线

Route::post('signup', 'LoginController@getSignUp');

signup.blade.php

             Form::label('email', 'Email:') <br />
         Form::text('email') <br />
         Form::label('password', 'Password:') <br />
         Form::password('password') <br />
         Form::label('zip_code', 'Zip Code:') <br />
         Form::select('zip_code', array('zip_code' => '', 'city' => '')); <br />     
         Form::submit() <br />
 Form::close() 

这是我通常在此之前调用数据库信息的方式

        public function showHome()

            $testimonials = DB::select('SELECT * FROM `testimonials` WHERE `id`=' . mt_rand(1, 2));
            return View::make('home.index', array('pageTitle' => 'Home'))->with('testimonials', $testimonials);

但我没有返回视图,因此不会传递任何变量,我不知道如何实现这一点

任何建议将不胜感激!

【问题讨论】:

你不打算在每个/dashboard 的请求上显示邮政编码吗?如果是这样,为什么不把它放在它自己的控制器上呢?如果不是,为什么? 【参考方案1】:

您可以使用 lists() 函数轻松列出 Eloquent 模型中选择字段的数据。

Testimonial::lists('content', 'id');

【讨论】:

对于那些好奇为什么id字段排在第二位的人,这是因为lists()方法中的第二个参数用于指定自定义键列。更多信息here.

以上是关于Laravel 4 从数据库中获取下拉表单的信息的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 4 中使用数据库结果填充下拉菜单

Laravel:填写一个包含多个下拉列表的表单

Laravel 4 如何使用 input::old() 方法在下拉菜单中显示选定的值?

使用数据库填充下拉菜单会导致Laravel 4

Laravel 4 - 显示带有旧数据输入以及数据库信息的编辑表单

Laravel 4 CSRF 表单通过 Ajax 调用提交