Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 推进多对多关系-如何设置附加值_Php_Many To Many_Propel - Fatal编程技术网

Php 推进多对多关系-如何设置附加值

Php 推进多对多关系-如何设置附加值,php,many-to-many,propel,Php,Many To Many,Propel,我有下面的表模式,它运行良好。唯一的问题是我想在order_products表中设置数量值。我不知道该怎么做。下面是我用来创建订单的代码 <database name="mysql"> <table name="products" namespace="Flex\Shop\Models" package="../../packages/flex/shop/src/Models" phpName="product"> <column name=

我有下面的表模式,它运行良好。唯一的问题是我想在order_products表中设置数量值。我不知道该怎么做。下面是我用来创建订单的代码

<database name="mysql">
    <table name="products" namespace="Flex\Shop\Models" package="../../packages/flex/shop/src/Models" phpName="product">
        <column name="id" type="integer" primaryKey="true" autoIncrement="true" />
        <column name="name" type="varchar" size="255" />
        <column name="price" type="integer" />
    </table>

    <table name="orders" namespace="Flex\Shop\Models" package="../../packages/flex/shop/src/Models" phpName="order">
        <column name="id" type="integer" primaryKey="true" autoIncrement="true" />
        <column name="delivery_address_id" type="integer" />
        <column name="invoice_address_id" type="integer" />
        <column name="person_id" type="integer" />

        <column name="amount" type="integer" />
        <column name="status" type="enum" valueSet="unpaid,paid,shipped,cancelled" />

        <foreign-key foreignTable="addresses" phpName="deliveryAddress">
            <reference local="delivery_address_id" foreign="id" />
        </foreign-key>
        <foreign-key foreignTable="addresses" phpName="invoiceAddress">
            <reference local="invoice_address_id" foreign="id" />
        </foreign-key>
        <foreign-key foreignTable="persons" phpName="person">
            <reference local="person_id" foreign="id" />
        </foreign-key>
        <behavior name="timestampable" />
    </table>
    <table isCrossRef="true" name="order_products" namespace="Flex\Shop\Models" package="../../packages/flex/shop/src/Models">
        <column name="order_id" type="integer" primaryKey="true" />
        <column name="product_id" type="integer" primaryKey="true" />

        <column name="quantity" type="integer" />

        <foreign-key foreignTable="orders" phpName="order">
            <reference local="order_id" foreign="id" />
        </foreign-key>
        <foreign-key foreignTable="products" phpName="product">
            <reference local="product_id" foreign="id" />
        </foreign-key>
    </table>
</database>

php代码:

<?php
$order = new Order();
$order->setAmount(0); // Calculate total amount
$order->setDeliveryAddress($address);
$order->setInvoiceAddress($address);
$order->setPerson($person);
$order->setStatus('unpaid');

$order->addProduct($product);


$order->save();