我正在尝试为我的用户实现营业时间。所以我有基本的用户表和 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/