как создать данные в отношениях один ко многим в laravel 6? - PullRequest
0 голосов
/ 20 сентября 2019

Kegiatan.php

use Illuminate\Database\Eloquent\Model;

class Kegiatan extends Model
{
    protected $fillable = ['kegiatan'];
    protected $table = 'kegiatan';

    public function galeri()
    {
        return $this->hasMany(Galeri::class);
    }
}

Galeri.php

class Galeri extends Model
{
    protected $fillable = ['galeri'];
    protected $table = 'galeri';

    public function kegiatan()
    {
        return $this->belongsTo(Kegiatan::class);
    }
}

form.blade.php

<form action="galeri" method="post" enctype="multipart/form-data">
        @csrf
        <div class="form-group col-md-12 col-sm-12 ml-3">
            <input type="text" name="namakegiatan"
                class="form-control form-control-lg text-center @error('namakegiatan') is-invalid @enderror"
                placeholder="Nama kegiatan" value="{{ old('namakegiatan') }}" autocomplete="off">
        </div>

        <div class="form-group col-md-12 col-sm-12 ml-3">
            <div class="custom-file">
                <input type="file" name="fotokegiatan[]"
                    class="custom-file-input custom-file-input @error('fotokegiatan') is-invalid @enderror"
                    id="customFile" id="customFile" multiple>
                <label class="custom-file-label" for="customFile">Pilih foto kegiatan...</label>
            </div>
        </div>

        <div class="form-group col-md-12 col-sm-12 ml-3">
            <button class="btn btn-dark btn-block" type="submit">
                <i class="mdi mdi mdi-content-save"> </i> Simpan</button>
        </div>
    </form>

вопрос в том, как сохранить одну 'kegiatan 'со многими' galeri '(фотография) в контроллере, использующим отношения один ко многим?

, который я ожидаю более или менее, как в примере ниже:

таблица кегиатана:

ID   KEGIATAN
1    kegiatan1

Таблица Galeri:

ID   GALERI       KEGIATAN_ID
1    foto1.jpg    1
2    foto2.jpg    1
3    foto3.jpg    1

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019

Чтобы создать объекты

$kegiatan = App\Kegiatan::create($createData);

или обновить объекты:

$kegiatan = App\Kegiatan::find($id);
$kegiatan = $kegiatan->update($updateValueArray);

Чтобы создать несколько объектов

$kegiatan->galeri()->create($arrayGaleriData);
0 голосов
/ 20 сентября 2019

Внутри вашего контроллера в методе store вы можете сделать что-то вроде этого:

foreach($request->fotokegiatan as $obj)
{
  $kegiatan->galeri()->save($obj)
}

Не можете предоставить вам гораздо больше кода, так как я не вижу ваш контроллер, но это должно помочьВы к решению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...