Verschillende bericht types met behulp van 1 class in Laravel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jorn Reed

Jorn Reed

20/03/2020 17:06:58
Quote Anchor link
Hoi,

Ik ben nu weer wat nieuws aan het proberen in Laravel, flexibele content, het hoeft niet heel erg ingewikkeld te zijn dus maak ik het zelf, zonder gebruik te maken van een library ofzo.

Ik wil een pagina waarop de gebruiker, zelf de indeling van de pagina kan bepalen. Ik wil dus dat die persoon uit 3 bericht types kan kiezen. Bericht, Video of Afbeelding gallerij.

Elk bericht type heeft zijn eigen data velden. Een normaal bericht bijvoorbeeld een titel en beschrijving. Video alleen een video url. Een gallerij, meerdere afbeelding urls, misschien nog met een oneToMany relatie met een afbeeldingen tabel.

Ik wil dus dat alle verschillende velden in de juiste volgorde van wanneer ze zijn opgeslagen getoond worden op de pagina, door iets als dit toe te passen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
@foreach($fields as $field)
    @switch($field->type)
        @case('video')
            <iframe src="{{$field->video_url}}">
        @case('post')
            <h2>{{$field->title}}</h2>
            <p>{{$field->content}}</p>
        @case('gallery')
            @foreach($field->gallery as $img)
                <img src="{{$img->url}}">
            @endforeach
    @endswitch
@endforeach


Ik denk dat dit wel mogelijk is om 1 algemene berichten model te maken en per bericht type een model, en veel gebruik te maken van OneToMany relaties, maar ik heb nog niet echt een idee, hoe ik het met elkaar zou kunnen combineren in de database structuur.

Heeft iemand enig idee?
 
PHP hulp

PHP hulp

12/07/2020 01:57:24
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/03/2020 17:49:17
Quote Anchor link
Betreft de database structuur heb je meestal twee opties:

- één tabel met kolommen die voor sommige types niet zult gebruiken en die dan dus ook nullable moeten zijn.
- voor ieder type een aparte tabel.

Wanneer je voor de tweede optie kiest zul je in jouw geval het sorteren van de berichten in PHP moeten oplossen. Ik zou voor de eerste kiezen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.