laravel,在另一个表的下拉列表中显示数据,但保存在当前表中

Posted

技术标签:

【中文标题】laravel,在另一个表的下拉列表中显示数据,但保存在当前表中【英文标题】:laravel, displaying data on a dropdown from another table but saving in current table 【发布时间】:2021-10-16 16:40:09 【问题描述】:

我有 2 张桌子,一张 user 桌子和一张 working_hours 桌子。在 working_hours 的添加屏幕上,我想要一个下拉菜单以允许用户从 users 表中选择一个 ID,当按下提交按钮时,它将存储在我的 working_hours 表中 worker_id 列下.

控制器:

public function store(Request $request)
    
        $energy = new Work;
        $energy->staff_id = $request->input('staff_id');  
        $energy->work_time = $request->input('work_time');
        $energy->save();
        return redirect('/vmaintenance')->with('success', 'data added');
    

型号:

class Work extends Model

    public $timestamps = false;
    protected $table = 'work_log';
    protected $primaryKey = 'id';
    protected $dates = ['date'];
    protected $guarded = ['id'];
    use HasFactory;

下拉列表:

<div>
<label>Select Staff</label>
<select name="staff_id" >
<option value="">--Select--</option>
</select>
</div>

我对 Laravel 还很陌生,所以我不知道该在下拉菜单中放什么。

有人知道我能做什么吗?

【问题讨论】:

【参考方案1】:

您需要一个控制器,您可以使用它首先获取用户列表。使用index 方法创建一个名为StaffController 的控制器,并在前端加载您需要的用户。

如果您使用刀片模板,则可以使用 foreach;


    <div>
    <label>Select Staff</label>
    <select name="staff_id" >
    @foreach($staff as $staff_mebers)
        <option value=" $staff->id "> $staff->name </option>
    @endforeach
    </select>
    </div>

【讨论】:

class StaffController extends Controller public function index() $energy = Staff::orderBy('id', 'desc')-&gt;paginate(5); return view('admin.vmaintenance')-&gt;with('energy', $energy);

以上是关于laravel,在另一个表的下拉列表中显示数据,但保存在当前表中的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 中使用 ajax 用数据库填充下拉列表

如何使用 Laravel 在下拉列表中显示数据库中的选定值?

通过从下拉列表中选择字段名称来显示 mysql 表的字段数据

保存下拉列表的选定值并在另一个下拉列表/重复下拉列表中默认分配它

如果我在另一个下拉列表中选择特定值,我想将值添加到下拉列表

没有在自定义类下拉列表中显示 EDStarRating?