我目前正在制作一个故事板,我在那里上传图片讲故事。
所以问题是我只想限制相关的查询。
故事板与图像有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
显示每个故事板的第一张图像?
很抱歉,如果我要求很多,但如果有人可以给我一个有效的例子,我会很高兴因为我尝试了很多变化而没有任何作用......
答案 0 :(得分:0)
您可以在关系中添加条件,即where
,order_by
,limit
等。
例如(注意这是未经测试的)
$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
列或weight
或sort_order
列。在不知道您的数据库架构的情况下,我无法告诉您哪些需要。