1

我目前正在制作一个故事板,我在那里上传图片来讲述一个故事。

所以问题是我只想限制相关查询。

故事板与图像有has_many关系。在故事板出现的列表中,我只想显示第一张图片,当有人点击它时,它会显示全部,显示全部很好,但我可以只限制我视图中的相关图片。

我完全对它感到困惑,因为我在论坛上阅读了很多关于它的信息,尝试了可能的变化,限制被忽略了,或者我得到了错误

所以这是我的代码

控制器

$stories = Model_Storyboard::find('all', array('related' => array('storyboardimage')));

$this->template->title = "Sotry Board | " . Config::get('site_name');
$this->template->content = View::forge('storyboard/index', array('stories' => $stories));

那么我怎样才能限制storyboardimage显示每个故事板的第一张图片呢?

对不起,如果我要求太多,但如果有人能给我一个工作示例,我会非常高兴,因为我尝试了很多变化,但没有任何效果......

4

1 回答 1

0

您可以将条件添加到关系上,即where,order_bylimit

例如(注意这是未经测试的)

$stories = Model_Storyboard::find('all', array(
    'related' => array(
        'storyboardimage'   =>  array(
            'limit' =>  1,
            'order_by'  =>  array(
                'field_indicative_of_first_image' => 'desc'
            ),
        )
    )
));

在上面的示例中,我添加了field_indicative_of_first_image其中简单的意思是将其替换为可用于获取第一张图像的列。例如,这可能是一created_at列或一weightsort_order。在不知道您的数据库架构的情况下,我无法告诉您您需要哪个。

于 2012-11-24T14:58:19.213 回答