php - 拉维尔 5 : Eloquent & form model for business hours

标签 php sql forms laravel eloquent

我正在尝试为我的用户实现工作时间。所以我有基本的用户表和 user_business_hours 表,如下所示:

| id | user_id | weekDay | start_time | end_time | created_at | updated_at |
|---:|---------|--------:|------------|----------|------------|------------|
| 1  | 10      | 1       | 10:00:00   | 12:00:00 | ...        | ...        |
| 2  | 10      | 1       | 13:30:00   | 18:00:00 | ...        | ...        |

现在的问题是: 如何查询此模型并设置 Form::model()/输入,让 laravel 自动使用提供的值填充必要的输入,同时更新特定用户的营业时间?

我在考虑这个输入组织:

| ...     | Work From | Work From | add new row |
|---------|-----------|-----------| ----------- |
| Monday  | 10:00:00  | 12:00:00  | +           |
| Monday  | 13:30:00  | 18:00:00  | +           |
| Tuesday | <input>   | <input>   | +           |

请注意,用户可以根据需要为每天设置任意次数(添加新行列)。

谢谢你的想法

最佳答案

解决方案是将模型转换为数组:

{!! Form::model($model->toArray(), []) !!}
    {!! Form::text('business_hour[0][from]', null, []) !!}
    {!! Form::text('business_hour[0][to]', null, []) !!}
    {!! Form::text('business_hour[1][from]', null, []) !!}
    {!! Form::text('business_hour[2][to]', null, []) !!}
{!! Form::close() !!}

根据您的数组结构 - 在后台运行 array_get() 帮助程序,并使用 transformKey() 方法转换字段名称。

protected function transformKey($key)
{
    return str_replace(['.', '[]', '[', ']'], ['_', '', '.', ''], $key);
}

如果您将模型作为对象交付,那么内部的所有内容也必须是对象,则不可能使用类似的东西:

{
    'key' => [
        'hallo' => 'welt'
    ]
}

关于php - 拉维尔 5 : Eloquent & form model for business hours,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32549037/

相关文章:

php - PDO SQL - 插入数十个字段

javascript - 提交联系表后通过姓名感谢访客

php - 我的 html 表单没有使用 php mysql 将值发布到数据库中

php - 如何从数组中删除所有 html 标签?

php - Symfony 实体类型中的树结构

java - 将所有数据存储在内存中时的选项不缩放

python - 如何更改 `id` 字段的初始值?

javascript - 弹出内容有时出现在主要内容后面

带有 curl 的 php 解析器 xml

SQL Server 2008 - 搜索查询