【问题标题】:How to make a Input type select list with database from other table - Laravel 5.4如何使用其他表中的数据库制作输入类型选择列表 - Laravel 5.4
【发布时间】:2017-05-26 10:26:16
【问题描述】:

我想制作一个输入表单,在该表单中我有 Input type="select" 并且我需要从数据库中的其他表中选择一个字段。

我不知道该怎么做。谁能帮我?

我已经尝试过使用静态数据(不是来自数据库),结果是一个数字。在示例中,我制作了一个列表来选择:管理员和用户。但是当我选择管理员时,保存到数据库的结果是 0,如果我选择用户,结果是 1。

但是如果我使用静态数据,现在我需要从动态数据(来自数据库)中选择它。

谢谢大家。

编辑:

对不起,如果你们对我的问题感到困惑,我想问两个问题:

  1. 我想做这样的选择列表:http://prntscr.com/fcm4my

    但我希望该列表来自我数据库中表中的一个字段。简短的故事是我为一包物品创建了一个表,现在我想为包的价格创建输入表单。所以我需要将数据包的名称称为价格表。

  2. 我有其他形式的代码:

{{Form::select("level",['ADMIN','USER'],null,['class'=>'form-control','required'])}}

但是为什么我的数据库中的结果是 0 和 1 像这张图片:http://prntscr.com/fcm5jl

谢谢

【问题讨论】:

  • 显示您的代码。
  • 显示您的刀片文件和控制器代码,您在尝试什么,以便可以根据您的代码进行修改
  • 抱歉回复晚了,你需要哪部分代码?因为如果我发布整个视图和控制器,它会很长。谢谢
  • @parrker9 抱歉忘了提到你
  • @Vikash 也忘了提及你

标签: laravel laravel-5


【解决方案1】:

我在 Laravel 中为选择框准备数据的首选方法是 QueryBuilder 的 lists() 方法。如果传递一个参数,则返回一个元素集合,每个元素都是数据库记录的属性;如果你传两个,第二个参数就是key。

在你的情况下,你可以在你的控制器中做这样的事情:

$users = User::lists('name', 'name')->all(); 

return view()->with(compact('users'));

然后在您看来,如果您使用的是 laravelcollective/html 之类的东西:

{!! Form::select('user', $users, null, ['class' => 'form-control']) !!}

如果有疑问,请打开浏览器的开发工具(甚至是源代码),并检查<select> 元素的<option> 节点中插入的内容,尤其是value 属性。

【讨论】:

    【解决方案2】:

    首先以简单的方式从用户表中获取所有记录

    $user = User::all();
    return view('view.name')->with('users',$user);
    

    然后在您的视图中编写此代码选择

    <select>
        @foreach($user as $users)
            <option value="{{ $user->id }}">{{ $user->name }}</option>
        @endforeach
    </select>
    

    【讨论】:

    • 呃,我的代码是这样的:{{Form::select("level",['ADMIN','USER'],null,['class'=&gt;'form-control','required'])}}
    【解决方案3】:

    首先从数据库中获取具有正确键和值的用户:

         $users= App\User::pluck('name','name');
    

    然后将其传递给视图,并在视图中

         {!! Form::select('user',$users,$user->id?:null) !!}
    

    【讨论】:

    • 你好,马赫迪。感谢您的回复,如果我没记错的话,Laravel 5.4 是不是已经不支持 pluck 了?
    猜你喜欢
    • 2018-06-29
    • 1970-01-01
    • 2019-12-05
    • 2018-08-29
    • 1970-01-01
    • 2021-01-09
    • 2017-10-23
    • 2017-09-13
    • 2017-11-13
    相关资源
    最近更新 更多