class MyActiveRecord extends \yii\db\ActiveRecord
{
public static $usedExtraFields = [];
public static function getExtraFields(): array
{
return [];
}
public static function useExtraFields(?array $keys = null): void
{
if (($keys[0] ?? null) === '*') $keys = null;
static::$usedExtraFields[static::class] = $keys;
}
public function fields(): array
{
$extraFields = static::getExtraFields();
if ((static::$usedExtraFields[static::class] ?? null) !== null) {
$extraFields = ArrayHelper::filter($extraFields, static::$usedExtraFields[static::class]);
}
return array_merge(parent::fields(), $extraFields);
}
}
// классы наследуются от MyActiveRecord и перегружают getExtraFields()
class MyClass extends MyActiveRecord
{
public static function getExtraFields(): array
{
return [
'param' => 'param',
'child' => static function ($model) {
return $model->getSubClass()->select('c')->one();
},
];
}
}
// используется это так:
Yii::$app->response->format = Response::FORMAT_JSON;
MyClass::useExtraFields([]); // запретить дополнительные поля
MyClass::useExtraFields(['param']); // ограничить дополнительные поля
MyClass::useExtraFields(['child']); // ограничить дополнительные поля
MyClass::useExtraFields(); // разрешить все дополнительные поля
$models = MyClass::find()->where(...)->all();
return [
'models' => $models,
];
$a = "[480p]\/storage\/458f706a\/hls\/stream_2.m3u8,[720p]\/storage\/458f706a\/hls\/stream_1.m3u8,[1080p]\/storage\/458f706a\/hls\/stream_0.m3u8";
preg_match_all('/(\[480p\].*?),/', $a, $m);
var_dump($m[1][0]);
$a = "[480p]\/storage\/458f706a\/hls\/stream_2.m3u8,[720p]\/storage\/458f706a\/hls\/stream_1.m3u8,[1080p]\/storage\/458f706a\/hls\/stream_0.m3u8";
$a = explode('[480p]', $a);
if (isset($a[1])) {
$a = explode(',', $a[1]);
var_dump('[480p]' . $a[0]);
}
$_REQUEST["wpc_random_total"]
, $_REQUEST["wpc_random_number1"]
и $_REQUEST["wpc_random_number2"]
не заданы, а к ним идет обращение.sanitize_text_field($this->wpc_string())
в этом случае возвращает не число, а потом в плагине происходит сложение двух не чисел.Каким образом здесь утроена структура бд?
Какой тип имеют поля address, company?
Как мне их записать в бд
получать их в таком виде
Course::find()
->alias('course')
->select('course.name, lesson.name, theme.name')
->leftJoin(['lesson' => Lesson::tableName()], 'lesson.course_id = course.id')
->leftJoin(['theme' => Theme::tableName()], 'theme.lesson_id = lesson.id')
->where(['theme.id' => $theme_id])
->asArray()
->all();
yii\imagine\Image::$thumbnailBackgroundAlpha = 0;
$ar1 = [
['a' => 1, 'b' => 2],
['a' => 2, 'b' => 11],
['a' => 3, 'b' => 12],
];
$ar2 = [
['a' => 1, 'b' => 2],
['a' => 2, 'b' => 11],
['a' => 3, 'b' => 13],
];
$hashedArray1 = [];
foreach($ar1 as $ar) {
$hashedArray1[json_encode($ar)] = $ar;
}
$hashedArray2 = [];
foreach($ar2 as $ar) {
$hashedArray2[json_encode($ar)] = $ar;
}
var_dump(array_intersect_key($hashedArray1, $hashedArray2));