我正在尝试为我的用户实现营业时间。所以我有基本的用户表和 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 - Laravel 5 : Eloquent & form model for business hours,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32549037/

10-16 06:41