php – 如何在RedBean属性中存储array()?
我得到以下内容:
$post = (array) json_decode($post); $pushUser->dagen = (array) $post['days']; 帖子的“天”部分是: [dagen] => Array ( [0] => Monday [1] => Wednesday ) 我想做的就是将$pushUser-dagen存储在数组中,天数为:)…非常简单吧? 但后来我得到了这些错误:
是否无法将数组存储在RedBean对象中? 解决方法
无法在Bean中存储数组,因为RedBeanPHP无法预测数组在数据库中的表示方式.
解决方案取决于您稍后要对此信息执行的操作.你想添加其他东西,而不仅仅是工作日,比如晚上或加班(如果安排?),在这种情况下,我会选择最灵活,最简单的解决方案: //Flexible solution foreach($days as $day) $user->sharedDay[] = R::findOne('day',' name = ? ',array($day)); 因为我们使用sharedDay而不是ownDay,所以记录不会重复.此解决方案创建了一个整洁的链接表day_user. 当然,您需要在数据库中存储一周的工作日: $days = array('monday',...); foreach($days as $dayname) { $d = R::dispense('day'); $d->name = $dayname; R::store($d); } 如果您希望能够快速跟踪具有特定工作日配置文件的用户,则可能需要对日期进行编码: //Performance solution function days($days) { $weekdays = array('sunday','monday','tuesday',...); $field = ''; foreach($weekdays as $day) { $field .= (in_array($day,$days)) ? '1' : '0'; } return $field; } $user->days = bindec(days($days)); 在这种情况下,您可以通过查询找到每个具有“星期一”和“星期六”的用户:天= 33.这真的很快. 如果您根本不关心数据,可以选择: //Quick and dirty solution $user->days = implode(',',$days); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |