Eloquent ORM: Relace: Has Many Through

Has Many Through

Poskytuje pohodlnou zkratku pro přístup ke vzdáleným relacím pomocí prostřední vazby.

Příklad

Model Country může mít mnoho modelů Post prostřednictvím modelu User:

Pomocí relace hasManyThrough lze jednoduše získat všechny příspěvky (tabulka posts) pro danou zemi (tabulka countries), přestože tabulka posts neobsahuje přímou vazbu na tabulku countries.

$country->posts

Struktura modelu

namespace App;

use Illuminate\Database\Eloquent\Model;

class Country extends Model
{

  /**
   * Get all of the posts for the country.
   */
  public function posts()
  {
    return $this->hasManyThrough('App\Post', 'App\User');
  }

}

Jako první parametr metody hasManyThrough uvádíme model ke kterému chceme získat přístup, jako druhý parametr uvádíme model prostředníka.

Zdroje

Eloquent ORM: Relace 1:1 (one-to-one)

Základní vztah kdy jeden prvek z první skupiny je spojen s jedním jediným prvkem z druhé skupiny.

Např. jeden člověk má (has one) jedno rodné číslo. A jedno rodné číslo patří (belongs to) jednomu člověku.

Vztahy typu 1:1 obecně nemusíme, ale podle potřeby můžeme rozdělovat do více tabulek (entit).

Pokračování textu Eloquent ORM: Relace 1:1 (one-to-one)

Návrhové vzory: Messenger (přepravka)

  • počet atributů = počet přenášených hodnot
  • instance třídy jsou tzv. immutable objects
  • atributy třídy jsou veřejné konstanty
    • lze k nim (z důvodu efektivity) přistupovat přímo
    • nelze je dále měnit
  • lze definovat přístupové metody (gettery), příp. další užitečné metody
  • atributy třídy jsou nastaveny v konstruktoru, dále je nelze měnit (bezpečné předání dat)

Pokračování textu Návrhové vzory: Messenger (přepravka)

Návrhové vzory: Jednoduchá (statická) tovární metoda

Jedná se o jednodušší verzi návrhového vzoru (obecná) tovární metoda.

Použijeme, pokud potřebujeme funkčnost, kterou není schopen dodat konstruktor.
Pokud potřebujeme získat odkaz na objekt, ale z různých důvodů nechceme či nemůžeme použít konstruktor.

Pokračování textu Návrhové vzory: Jednoduchá (statická) tovární metoda

Active Record

Active Record je architektonický vzor pro práci s databází.

Implementací vzoru Active Record je objekt který nese data i chování.
Část dat má perzistentní podobu a potřebuje být uloženo v databázi.

Třída je odvozena od základní třídy, která implementuje rozhraní pro persistenci objektu – základní CRUD operace (create, read, update a delete).

Pokračování textu Active Record