簡體   English   中英

Symfony2 / Doctrine-與普通SQL有關的實體抽象

[英]Symfony2/Doctrine - Entity Abstraction in Relation to Normal SQL

我不熟悉Symfony2,而是基於現有的舊版MySQL模式構建應用程序。 我已經熟悉了所有Intro文檔(例如Book等),但是仍然需要了解一些有關如何正確使用框架的更高層次的概念。 在我通常會編寫SQL查詢的方式方面,嘗試使我了解實體的概念。 我已使用CLI為所有現有表生成實體。 例如,已經有一個Clients和Titles實體。 標題由“客戶”擁有,並且Symfony核心注釋正確地映射了它們。

因此,給定一個titles表,其中包含許多值列,但只有一個titles.client_id ...說我想在給定給定值的ClientsController中創建一個表單動作(clients.yml路徑:/ clients / {id} / add_title)網址中的client id將允許用戶輸入標題名稱,並將新記錄保存到僅具有titles.name和titles.client_id值的標題中……非常簡單。

我的問題是...定義此非常簡單的查詢(在常規SQL中)

INSERT INTO (titles) VALUES (name, client_id)

我是否需要為標題創建另一個實體以便僅使用這兩個特定值?

要么

在特定存儲庫中使用實體的一部分的理想方法是什么……在這種情況下,僅是標題表的一部分(名稱和client_id)?

這是我的客戶控制器中的Action方法:

//use Entity & Form namespaces for BOTH tables;

public function addTitleAction(Request $request)
{
    $client_entity = new Clients;
    $titles_entity = new Titles;
    // generate simple 2 input form with Form\TitlesType
    return etc ...
}

您可能會說,我還需要弄清楚如何使用Form類,但是這里的基本問題是如何從較大的實體生成簡單查詢以及如何從另一個實體/表控制器的控制器調用。 謝謝您的幫助。

為了將您的頭放在新概念上,可以將實體視為表中返回的一行。 將存儲庫視為對表的查詢。 因此,您應該有一個Title實體(不是Titles )。

INSERT INTO(標題)值(名稱,client_id)

我是否需要為標題創建另一個實體以便僅使用這兩個特定值?

創建新記錄時,您需要創建一個新對象(將新對象視為您隨后保存的新記錄),大致如下:

$title = new Title();
$title->setClient($client);
$em->persist($title);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM