/ / Obsługa pól JSON / Array w Eloquent [zamknięte] - php, mysql, json, laravel, eloquent

Obsługa pól JSON / Array w Eloquent [zamknięte] - php, mysql, json, laravel, eloquent

Używam Laravela do stworzenia CRM. Chcę, aby konta mogły być wielu typów_konta. W tabelach typów kont będzie identyfikator i tytuł, a następnie w tabeli Konta planuję mieć kolumnę, która przechowuje obiekt json, którego typami jest to konto.

Szukam właściwego sposobu poradzenia sobie z tym w Laravel z Eloquentem, aby powiązać je i móc zrobić coś takiego $account->types() i zwróć tablicę typów kont, do których należy konto, IE

array(
1 => "Customer",
3 => "Vendor"
)

a także być w stanie zrobić coś takiego Account::where("account_type", 1)->get(); i zwróć wszystkich „Klientów”

Obecnie używam MySQL do bazy danych, więc tablice nie są zbyt dużą opcją.

Odpowiedzi:

1 dla odpowiedzi № 1

Aby móc to zrobić, stworzyłbym trzecitabela specjalnie dla relacji konto / typ zamiast obiektu json w tabeli. Tak więc hipotetycznie, gdyby twoje tabele miały nazwy Konto, Typy i Typy kont, możesz uzyskać wszystkie typy dla konkretnego konta za pomocą czegoś takiego:

Account_Types::select("title")
->where("accountID", "=", $account_id)
->get();

Następnie, aby uzyskać wszystkie konta określonego typu, po prostu dołącz do tabel i uruchom polecenie select:

Account::join("account_types", "account_types.accountID", "=", "account.id")
->join("types", "types.id", "=", "account_types.typeID")
->select("account.id as id")
->where("types.id", "=", $type_id)
->get();

0 dla odpowiedzi nr 2
use Response;

return Response::json(array("1" => "Customer", "2" => "Vendor"));

Detale