本文整理汇总了PHP中Eccube\Framework\Util\Utils::sfArrayIntersectKeys方法的典型用法代码示例。如果您正苦于以下问题:PHP Utils::sfArrayIntersectKeys方法的具体用法?PHP Utils::sfArrayIntersectKeys怎么用?PHP Utils::sfArrayIntersectKeys使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Eccube\Framework\Util\Utils
的用法示例。
在下文中一共展示了Utils::sfArrayIntersectKeys方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: lfRegistProductClass
/**
* 商品規格登録を行う.
*
* FIXME: 商品規格登録の実処理自体は、LC_Page_Admin_Products_Productと共通化して欲しい。
*
* @param Query $objQuery Queryインスタンス
* @param array $arrList 商品規格情報配列
* @param integer $product_id 商品ID
* @param integer $product_class_id 商品規格ID
* @return void
*/
public function lfRegistProductClass($objQuery, $arrList, $product_id, $product_class_id)
{
/* @var $objProduct Product */
$objProduct = Application::alias('eccube.product');
// FIXME: dtb_csvテーブルの中で古いカラム名(右辺)が設定されている。sfArrayIntersectKeysでフィルタされてしまうので、名称を変更する必要がある
if (array_key_exists('classcategory_id', $arrList) && $arrList['classcategory_id'] != '') {
$arrList['classcategory_id1'] = $arrList['classcategory_id'];
}
if (array_key_exists('parent_classcategory_id', $arrList) && $arrList['classcategory_id'] != '') {
$arrList['classcategory_id2'] = $arrList['parent_classcategory_id'];
}
// 商品規格登録情報を生成する。
// 商品規格テーブルのカラムに存在しているもののうち、Form投入設定されていないデータは上書きしない。
$sqlval = Utils::sfArrayIntersectKeys($arrList, $this->arrProductClassColumn);
if ($product_class_id == '') {
// 新規登録
// 必須入力では無い項目だが、空文字では問題のある特殊なカラム値の初期値設定
$sqlval = $this->lfSetProductClassDefaultData($sqlval);
$sqlval['product_id'] = $product_id;
$sqlval['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id');
$sqlval['create_date'] = $arrList['update_date'];
// INSERTの実行
$objQuery->insert('dtb_products_class', $sqlval);
$product_class_id = $sqlval['product_class_id'];
} else {
// UPDATEの実行
// 必須入力では無い項目だが、空文字では問題のある特殊なカラム値の初期値設定
$sqlval = $this->lfSetProductClassDefaultData($sqlval, true);
$where = 'product_class_id = ?';
$objQuery->update('dtb_products_class', $sqlval, $where, array($product_class_id));
}
}
示例2: lfRegisterCategory
/**
* カテゴリ登録を行う.
*
* FIXME: 登録の実処理自体は、LC_Page_Admin_Products_Categoryと共通化して欲しい。
*
* @param integer $line 処理中の行数
* @param FormParam $objFormParam
* @return integer カテゴリID
*/
public function lfRegisterCategory($line, FormParam &$objFormParam)
{
// 登録データ対象取得
$arrList = $objFormParam->getDbArray();
// 登録情報を生成する。
// テーブルのカラムに存在しているもののうち、Form投入設定されていないデータは上書きしない。
$sqlval = Utils::sfArrayIntersectKeys($arrList, $this->arrRegistColumn);
// 必須入力では無い項目だが、空文字では問題のある特殊なカラム値の初期値設定
$sqlval = $this->lfSetCategoryDefaultData($sqlval);
/* @var $objCategory CategoryHelper */
$objCategory = Application::alias('eccube.helper.category');
$category_id = $objCategory->save($sqlval);
return $category_id;
}
示例3: lfInsertDummyProductClass
/**
* 規格を設定していない商品を商品規格テーブルに登録
*
* @param array $arrList
* @return void
*/
public function lfInsertDummyProductClass($arrList)
{
$objQuery = Application::alias('eccube.query');
/* @var $objDb DbHelper */
$objDb = Application::alias('eccube.helper.db');
// 配列の添字を定義
$checkArray = array('product_class_id', 'product_id', 'product_code', 'stock', 'stock_unlimited', 'price01', 'price02', 'sale_limit', 'deliv_fee', 'point_rate', 'product_type_id', 'down_filename', 'down_realfilename');
$sqlval = Utils::sfArrayIntersectKeys($arrList, $checkArray);
$sqlval = Utils::arrayDefineIndexes($sqlval, $checkArray);
$sqlval['stock_unlimited'] = $sqlval['stock_unlimited'] ? UNLIMITED_FLG_UNLIMITED : UNLIMITED_FLG_LIMITED;
$sqlval['creator_id'] = strlen($_SESSION['member_id']) >= 1 ? $_SESSION['member_id'] : '0';
if (strlen($sqlval['product_class_id']) == 0) {
$sqlval['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id');
$sqlval['create_date'] = 'CURRENT_TIMESTAMP';
$sqlval['update_date'] = 'CURRENT_TIMESTAMP';
// INSERTの実行
$objQuery->insert('dtb_products_class', $sqlval);
} else {
$sqlval['update_date'] = 'CURRENT_TIMESTAMP';
// UPDATEの実行
$objQuery->update('dtb_products_class', $sqlval, 'product_class_id = ?', array($sqlval['product_class_id']));
}
return $sqlval['product_class_id'];
}
示例4: extractShipping
/**
* 配送情報のみ抜き出す。
*
* @param string $arrSrc 元となる配列
* @return void
*/
public function extractShipping($arrSrc)
{
$arrKey = array();
foreach ($this->arrShippingKey as $key) {
$arrKey[] = 'shipping_' . $key;
}
return Utils::sfArrayIntersectKeys($arrSrc, $arrKey);
}