The way I would probably do it (however, not knowing the structure of your page, this is a bit guesswork)
- blueprint:
fields:
teasers:
label: Teasers
type: structure
fields:
image:
label: Image
type: select
options: images
text:
label: Text
type: text
link:
label: Link
type: select
options: query
query:
page: teasers
fetch: children
text: '{{title}}'
value: '{{uid}}'
-template (not tested) and without all the ifs …
$teasers = $page->teasers()->toStructure();
foreach($teasers as $teaser) :
$linkPage = page('teaser')->children()->find($teaser->link());
$image = $teaser->image();
$text = $teaser->text();
?>
<a href="<?php echo $linkPage->url()"><image src="<?php echo $image->url() ?>"></a>
// and then do sth. with the text as well ...
<?php endforeach ?>