Is it possible to implement a relation behavior with an image?

Hello,

Is it possible to implement a relation behavior with an image?

I have an image model and controller, which works standalone, but not inside another model as a Relation Behavior.

Did I maybe implement something wrong or doesn’t this work by default?

Well, it is possible. I don’t know what I did wrong before.

So this is a nice solution of having different information to an image like a name and a richtexteditor field and having multiple of them in another “main” model.

This kind of replaces having an image in a repeater field, which I would like to have a lot…

What was an issue, is to show the images in the columns of the submodel. The main model complaint of not having an image column field. So I just did a new DB field, where I save the image model as well.

Here’s my DB structure of the image model:

$table->increments('id')->unsigned();
$table->integer('start_page_id')->unsigned()->nullable();
$table->string('name');
$table->text('content')->nullable();
$table->text('images')->nullable();
$table->integer('sort_order')->unsigned()->default(0);
$table->timestamp('created_at')->nullable();
$table->timestamp('updated_at')->nullable();

Here is what I do in the image model beforeSave:

public function beforeSave() {
    $this->images = $this->images_of_the_week;
}

So then I’m able to have a partial column field in the image model like this:

images:
    label: Bild
    type: partial
    path: ~/plugins/creationhandicap/startpage/controllers/images/_image.htm
    searchable: false
    sortable: false

The partial then looks like this:

<?php
    if (isset($record->images)) {
        $imagePath = $record->images['path'];
        $imageFileName = $record->images['file_name'];
        echo '<img src="'. $imagePath .'" alt="'. $imageFileName .'" style="height: 80px; width: 80px; object-fit: cover; border-radius: 2px;" />';
    } else {
        echo 'Kein Bild vorhanden';
    }
?>

If somebody struggles to achive the same, please let me know here…