我正在尝试为我的用户实现营业时间.所以我有基本用户表和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()/ inputs,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]',[]) !!} {!! Form::text('business_hour[1][from]',[]) !!} {!! Form::text('business_hour[2][to]',[]) !!} {!! Form::close() !!}
根据您的数组结构 – 在后台运行array_get()帮助程序,并使用transformKey()方法转换字段名称.
protected function transformKey($key) { return str_replace(['.','[]','[',']'],['_','','.',''],$key); }
如果您将模型作为对象交付,那么内部的所有内容也必须是对象,则不可能使用以下内容:
{ 'key' => [ 'hallo' => 'welt' ] }