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 № 1Aby 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"));