Я следующий пример схемы из 2 моделей OrderDetail и Item, многие-к-одному:Symfony 1.4 Формы: Включать данные из соотношения к форме
OrderDetail:
columns:
invoice_id: { type: integer, notnull: true }
item_id: { type: integer, notnull: true }
quantity: { type: integer, notnull: true }
transaction_price: { type: integer }
currency: { type: string(50), default: peso }
relations:
Invoice: { type: one, local: invoice_id, foreign: invoice_id }
Item: { type: one, local: item_id , foreign: item_id }
indexes:
invoice_to_item:
fields: [item_id, invoice_id]
type: unique
Item:
actAs: { Timestampable: ~, SoftDelete: ~ }
columns:
item_id: { type: integer, autoincrement: true, primary: true }
item_name: { type: string(100), notnull: true }
description: { type: text, notnull: true }
part_number: { type: string(50) }
size: { type: string(50) }
unit: { type: string(10) }
in_stock: { type: integer, notnull: true }
in_transit: { type: integer, notnull: true }
released: { type: integer, notnull: true }
borrowed: { type: integer, notnull: true }
borrower_name: { type: string }
item_type_id: { type: integer, notnull: true }
relations:
OrderDetails: { type: many, class: OrderDetail, local: item_id, foreign: item_id }
Prices: { type: many, class: Price, local: item_id, foreign: item_id }
В моей форме, я хочу, чтобы включить информацию таблицу позиций, такую как item_name
и in_stock
. Что я просто хочу сделать, так это то, что я хочу отображать данные из таблицы Item, связанные с моей формой. Я хочу включить эту информацию в свой объект формы для ясности и организации. Я хочу быть в состоянии сделать что-то подобное в моей форме:
echo $form[$number]['Item']['part_number']->getValue()
// where $number is the index of the OrderDetail in the form and key 'Item' contains data for the Item related to this OrderDetail.
Я пытался встраивание предмета отношения в OrderDetail, такие как:
class OrderDetailForm extends BaseOrderDetailForm {
public function configure() {
// some config here...
$this->embedRelation('Item');
}
}
Проблема с этим, когда я сохранить форму , Предмет объекта также проверяется и сохраняется. Я просто использую эту информацию для отображения. Вот примерный образец того, как я хочу, чтобы форма быть и то, что я хочу сделать:
OrderDetail: 1
Item: Headset
In Stock: 5pcs
Quantity: [input field here that can be changed by the user]
Если что-то неясно, пожалуйста, дайте мне знать. Кроме того, если вы можете предложить лучший подход, я бы очень признателен.
'OrderDetailForm' - встроенная форма сама по себе. У меня есть другая форма 'InvoiceForm', которая содержит несколько' OrderDetailForm', связанных с определенным элементом. В InvoiceForm я хочу отобразить связанные с ним 'OrderDetails' и для каждого' OrderDetail', я хочу показать 'item_name' связанного с ним' Item'. У меня нет никаких проблем с внедрением как таковым. Моя проблема в том, что когда я делаю embedRelation(), во время сохранения объект 'Item' также сохраняется. Надеюсь, это прояснится. Я ценю вашу помощь. – nmenego
Я изменил свой ответ. Я не уверен, что это очень помогает ... но я подумал, что я сделаю это. – antony
он работал как шарм! – nmenego