发新话题
打印

涂鸦CakePHP:Set::extract是个好东西

涂鸦CakePHP:Set::extract是个好东西

作者:老王

CakePHP里的Set::extract是个很奇妙的小工具,使用起来相当爽,虽然大部分时候我们不会直接使用它,但是CakePHP里很多地方都能看到它的影子,比如说模型中的generateList方法:
复制内容到剪贴板
代码:
function generateList($conditions = null, $order = null, $limit = null, $keyPath = null, $valuePath = null, $groupPath = null)
其中的keyPath和valuePath参数格式就是Set应用的典型。
复制内容到剪贴板
代码:
* @param string $keyPath A string path to the key, i.e. "{n}.Post.id"
* @param string $valuePath A string path to the value, i.e. "{n}.Post.title"
简而言之,就是通过Set::extract可以方便的访问数组或者对象的相关数据,这样说可能不是很直观,我再说一个简单的例子:

比如说我们想访问session中保存的User数组变量,并且echo出键为name的数组元素值,代码大致如下:
复制内容到剪贴板
代码:
$user = $this->Session->read('User');
echo $user['name'];
这很直观,也很常见,但是实际上,我们通过查看session实现的源代码可以发现,Session内部已经加入了Set::extract的功能,所以,上面的代码,其实我们可以简单的写为:
复制内容到剪贴板
代码:
echo $this->Session->read('User.name');
怎么样,简单吧。

TOP

发新话题