Eloquent ORM: Vytvoření záznamu souvisejícího modelu – metody save() a create()

Příklad: Přidání komentáře (comment) ke článku (post)

Rozdíl mezi metodami save() a create()

Metoda save() očekává jako vstupní parametr objekt modelu Eloquentu.
Metoda create() očekává jako vstupní parametr pole. Metoda sama vytvoří z dat v poli objekt modelu Eloquentu a poté jej uloží.

Pokračování textu Eloquent ORM: Vytvoření záznamu souvisejícího modelu – metody save() a create()

Eloquent ORM: Vytváříme třídy modelu

Model v tomto případě představuje vrstvu aplikace která komunikuje s databází za účelem získávání a ukládání data.

Knihovna Eloquent ORM je k dispozici jako součást velmi oblíbeného PHP frameworku Laravel. Lze ji také použít i samostatně, případně v rámci frameworku vlastního.

Eloquent ORM používá implementaci Active Record. Jedná se o způsob přístupu k datům v databázi způsobem, kdy každá třída modelu představuje jednu tabulku v databázi a každá instance této třídy představuje jeden záznam (řádek) z tabulky v databázi.

Pokračování textu Eloquent ORM: Vytváříme třídy modelu

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