当表单中有需要提交数组到数据库,比如要加一些客服QQ的信息,Laravel 会抛出输入的字段不能为数组的错误,解决办法也很简单。
增加多个QQ客服需要用到数组
![Laravel 5.1 양식 제출 데이터(배열 포함) 삽입 데이터베이스 오류 솔루션](http://segmentfault.com/img/bVqe7B)
抛出的错误
- ErrorException in helpers.php line 671:preg_replace(): Parameter mismatch, pattern is a string while replacement is an array
-
复制代码
解决办法:
模型中把需要提交的字段“阻止”,在控制器中单独用Input接收并将其序列化,然后再进行保存就可以了。
模型示例:
- class Shop extends Model
- {
- public $timestamps=false;
- protected $guarded = ['qq','submit'];
- }
复制代码
控制器示例
- public function store(CheckNameRequest $request)
- {
- $shop = Shop::create(Input::get());
- $shop->qq = serialize(Input::get('qq'));
- $shop->save();
- }
复制代码
同理,在显示的时候将其反序列化即可。
原文地址:http://note.mango.im/article/24
|