【问题标题】:Array to string conversion laravel数组到字符串的转换 laravel
【发布时间】:2020-06-24 12:36:04
【问题描述】:

在我的刀片视图中,我有这样的输入:

<input type="time" class="" name="shipping_hours[saturday][from]" value="" />
<input type="time" class="" name="shipping_hours[saturday][to]" value="" />
<input type="checkbox" name="shipping_hours[saturday][all_day]" /> <label class="">24h</label>

我在 mysql 数据库中有一个表,shipping_hours。我想以这种 JSON 格式保存数据:

{"monday":{"from":"13:00","to":"22:00"},"tuesday":{"from":"13:00","to":"22:00"},"wednesday":{"from":"13:00","to":"22:00"},"thursday":{"from":"13:00","to":"22:00"},"friday":{"from":"13:00","to":"01:00"},"saturday":{"from":"13:00","to":"01:00"},"sunday":{"from":"12:00","to":"22:00"}}

我如何在 laravel 中做到这一点?

控制器(存储功能)

public function store(Request $request)
{
    $data = $this->validator($request->all())->validate();
    settings_hours::create($data);
    session()->flash('message_success', "Object added");
    return redirect(route('hours'));        
}

控制器(验证器功能)

protected function validator($data) {
    return Validator::make($data, [
        'place_id' => 'required',
        'opening_hours.*' => 'nullable',
        'kitchen_hours.*' => 'nullable',
        'shipping_hours.*' => 'nullable',
        'breakfast_hours.*' => 'nullable',
        'launch_hours.*' => 'nullable',
        'reservation_hours.*' => 'nullable'
    ]);
}  

型号

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class settings_hours extends Model
{
    public $timestamps = false;

    protected $fillable = [
        'place_id',
        'opening_hours',
        'kitchen_hours',
        'shipping_hours',
        'breakfast_hours',
        'launch_hours',
        'reservation_hours'
    ];
}

【问题讨论】:

  • 欢迎。 SO问题需要某种格式才能适合我们的平台。你尝试了什么?你尝试的结果是什么?它与您的预期有何不同?我们是否产生了任何错误信息?请查看how to ask,然后查看edit。如果没有此信息,该问题看起来就像是“给我代码”、免费编码服务问题或教程请求,这是不合法的。 SO 旨在处理特定编码问题、错误等。添加更多信息可以让我们的志愿者社区帮助您解决问题。

标签: php arrays json laravel


【解决方案1】:

我在模型中添加了此代码并且可以正常工作,我认为这很有帮助

    protected $casts = [
    'place_id' => 'integer',
    'opening_hours' => 'array',
    'kitchen_hours' => 'array',
    'shipping_hours' => 'array',
    'breakfast_hours' => 'array',
    'launch_hours' => 'array',
    'reservation_hours' => 'array'
];

【讨论】:

  • 不鼓励在 SO 上使用纯代码的答案。大多数答案将受益于解释,以帮助访问者深入了解您的解决方案的重要元素。解释增加了长期价值,允许未来的访问者学习并将您的知识应用到他们自己的代码中,保持 SO 的高质量,并鼓励使用 SO 平台作为知识库,而不是“给我代码”或免费编码服务。解释通常比严格解释代码更快地消化/理解,并有助于将您的解决方案与其他解决方案区分开来。精心设计的答案更容易获得支持
【解决方案2】:
$string='hello,min,max';    
implode(',',$array);

【讨论】:

  • 不鼓励在 SO 上使用纯代码的答案。大多数答案将受益于解释,以帮助访问者深入了解您的解决方案的重要元素。解释增加了长期价值,允许未来的访问者学习并将您的知识应用到他们自己的代码中,保持 SO 的高质量,并鼓励使用 SO 平台作为知识库,而不是“给我代码”或免费编码服务。解释通常比严格解释代码更快地消化/理解,并有助于将您的解决方案与其他解决方案区分开来。精心设计的答案更容易获得支持
猜你喜欢
  • 2016-07-08
  • 1970-01-01
  • 2016-09-02
  • 1970-01-01
  • 2017-01-14
  • 2020-09-10
  • 2018-05-10
  • 2017-05-10
相关资源
最近更新 更多