z-song / laravel-admin

Build a full-featured administrative interface in ten minutes
https://laravel-admin.org
MIT License
11.15k stars 2.82k forks source link

Nested form image type not get stored value in edit action in laravel-admin #5775

Open kanishka55 opened 1 year ago

kanishka55 commented 1 year ago

Description:

I have one-to-many relationship tables. I want to store all my data in one form. Therefore, I created a nested form in parent controller. I have a number of images, which each image has caption text. In adding a new record, it inserts all inputs with image paths to the table fields. it means it saves all image paths in the database.

But the problem is when I go to edit action. After I submitted the edit form the image path value of child table table went to null.

`class Flag extends Model { protected $table = 'flags';

protected $fillable =[
    'small_description',
    'cover_photo',
    'cover_photocaption',
];

public function flagimage()
{
    return $this->hasMany(Flagimage::class, 'flag_id', 'id');
}

}`

`class Flagimage extends Model { protected $table = 'flagimages';

protected $fillable = [
    'flag_id',
    'image_url',
    'image_caption',
];

public function flag()
{
    return $this->belongsTo(Flag::class, 'flag_id', 'id');
}

}`

`$form = new Form(new Flag());

    $form->select('language_id', __('Language id'))->options(Language::all()->pluck('language_name', 'id'))->rules('required');
    $form->select('location_id', __('Location id'))->options(Location::all()->pluck('name', 'id'))->rules('required');
    $form->textarea('small_description', __('Small description'));
    $form->image('cover_photo', __('Cover photo'))->move('flag/cover')->uniqueName();
    $form->textarea('cover_photocaption', __('Cover photocaption'));

    $form->hasMany('flagimage', function (Form\NestedForm $form) {
        $form->image('image_url', __('Image'))->move('flag/images')->uniqueName();

        $form->textarea('image_caption', __('Caption'));

    });

    return $form;
}`

Steps To Reproduce: