我是Kohana的新手和整个ORM方法,并且无法在ORM中找到此代码,或者不在ORM中。 因此,Model中的这个函数返回一个对象
public function get_comments()
{
$comments = ORM::factory('comment')->find_all();
if ($comments)
{
return $comments;
}
else
return array();
}
Controller将此对象发送到View
$content = View::factory('/index')
->bind('comments', $comments);
$comments = Model::factory('comment')->get_comments();
$this->response->body($content);
这就是问题:我可以在视图中使用Model中的对象:
<?php foreach($comments as $comment): ?>
<div>
<h5><?php echo HTML::chars($comment->user->login); ?>:</h5>
<?php echo HTML::chars($comment->text); ?>
</div>
<?php endforeach; ?>
在ORM中是否可以接受,或者我应该以某种方式从对象创建一个数组并将其发送给View? 感谢
答案 0 :(得分:1)
在ORM中是否可以接受,或者我应该以某种方式从对象创建一个数组并将其发送给View?
这完全取决于你如何处理。
就个人而言,我将它们作为ORM对象留在视图中,并注意不要在我的视图中读取访问权限以外的任何内容。
如果您作为一个更大的团队的一员工作并且想要确保没有人做任何事情而不是从视图中的模型中读取,您可以使用json_encode / decode轻松地将它们转换为数组或简单对象:< / p>
$simple_comments = json_decode(json_encode($comments))
。
$comments_as_arrays = array_map(function($c) { return $c->as_array(); }, $comments->as_array())
。