Соответствие полей в базе данных Yii2/PHP

200
14 января 2018, 06:11

Такая задача:

  1. Следует загрузить 1 CSV файл с полями в базу данных: id, name, sku, price
  2. Загрузить 2 CSV файл в другую таблицу в базу данных: name, price (тут по сути нет уникального поля кроме name)
  3. Сделать соотношение данных одной таблице к другой по какому-нибудь полю рода id=id
  4. Вывести эти данные в одну форму и выгрузить тем же CSV Примерно: id, name, sku, price

Как реализовать соответствие полей в на PHP?

Использую для этого фреймворк Yii2.

Answer 1

Не очень понятно следующее: у вас должно быть 2 таблицы, в одной таблице полные данные, а в другой таблице те же самые данные, но без id и sku? Какой в этом смысл?

Если вопрос заключается только в

Как реализовать соответствие полей в на PHP?

Использую для этого фреймворк Yii2.

То ответ следующий:

У вас должно быть 2 сущности (=таблицы) они объявляются классами с привязкой к ActiveRecord.

В этих классах вы должны будете прописать соответствующие методы (называться они могут иначе, как и возвращаемые значения, так как связываться 1 таблица к другой может как hasOne, так и hasMany)

class Table1 extends ActiveRecord
{
    public function getTable2()
    {
        return $this->hasOne(Table2::className(), ['name' => 'name']); // первый name это поле в Table1, 2ой name - поле в Table2
    }
    ...
}
class Table2 extends ActiveRecord
{
    public function getTable1()
    {
        return $this->hasOne(Table1::className(), ['name' => 'name']); // первый name это поле в Table2, 2ой name - поле в Table1
    }
    ...
}

Более подробно Вы можете ознакомиться с ActiveRecords в Yii2 здесь https://yiiframework.com.ua/ru/doc/guide/2/db-active-record/ или на первоисточнике (http://www.yiiframework.com/doc-2.0/yii-db-activerecord.html)

READ ALSO
Убрать перенос строки в начале текста

Убрать перенос строки в начале текста

Текст берется из базы данных и при выводе на экран, вставляет новый абзац

160
PHP привести signed int к unsigned?

PHP привести signed int к unsigned?

Как можно отрицательное значение привести к беззнаковому?

168
PHP 7.2 проблема соединения с dbf через PDO

PHP 7.2 проблема соединения с dbf через PDO

У кого есть опыт работы с dbf на PHP 72 При попытке подключиться

206
PHP preg_match найти слово капсом

PHP preg_match найти слово капсом

ЗдравствуйтеНеобходимо найти в строке первое слово (только английский) капсом

198