我最近被一个包含很多复合主键(以及相关的外键朋友 XD)的数据库惊呆了。我正在使用 Yii 框架开发应用程序,我已经创建了我需要的所有模型和 crud,但我发现传递复合 pk 以创建自动 url 存在问题。
--- view ---
// this generate a php warning
Yii::app()->createUrl('controller/dosomething', array('id' => $model->primaryKey));
--- controller --
public function actionDoSomething(array $id) { ... }
此解决方案会生成警告,因为 createUrl 在内部使用 urlencode 并且它只是声称第二个参数不应该是数组。当然,即使 $model->primaryKey 返回一个数组而不是一个标量,禁用 PHP 警告也会让它工作得很好。但我想要一个“干净”的解决方案来解决这个问题!!!有任何想法吗?我正在考虑序列化/反序列化或加密/解密参数以使用单个字符串,但老实说不认为是最佳选择。